Rafal Boni | 3 Jun 2008 16:38
Picon
Favicon

Re: Fixing hpcarm (all SA11x0?) to mostly work again

Rafal Boni wrote:
> Folks:
>     Here's a patch to fix hpcarm to boot and be able to service 
> interrupts post the ARMv6 merge.  I suspect Shark has some of the same 
> issues.
> 
> This lets me happily complete autoconfig and get a single-user shell 
> (whereas before the machine panic'ed before finishing autoconfig or hung 
> early), but once in single user my Jornada 720 will still lock up after 
> less than a line of output... Any help debugging that would be 
> appreciated.  Even with LOCKDEBUG / DIAGNOSTIC I get no output after 
> this point, and I can't get into DDB either.

Hmm, if I do a 'while [ 1 ]; do i=(($i + 1)); echo $i; done' in the 
shell I get a few hundred lines of output and then croak differently (CV 
interlock not held during wait), with the following backtrace:

Condition variable error: lockdebug_wakeup: interlocking mutex not held 
during wakeup

lock address : 0x00000000c2281298 type     :               spin
initialized  : 0x00000000c02446b8 interlock: 0x00000000c03da27c

panic: LOCKDEBUG
Stopped in pid 0.6 (system) at  0xc02a33e0:     mov     r15, r14
db> tr
0xc022b034
         scp=0xc022b034 rlv=0xc0222bb8 (netbsd:lockdebug_abort1+0x90)
         rsp=0xc226ceb0 rfp=0xc226ced0
netbsd:lockdebug_abort1+0xc
         scp=0xc0222b34 rlv=0xc0223a54 (0xc0223a54)
         rsp=0xc226ced4 rfp=0xc226cef8
         r8=0x00000001 r7=0xc024561c
         r6=0xc2265ed4 r5=0xc2281298 r4=0x00000000
0xc0223980
         scp=0xc0223980 rlv=0xc01e89c4 (netbsd:cv_broadcast+0x24)
         rsp=0xc226cefc rfp=0xc226cf0c
         r8=0xd000d000 r7=0xc2281200
         r6=0xc0cea200 r5=0xc21da0e4 r4=0xc2281298
netbsd:cv_broadcast+0xc
         scp=0xc01e89ac rlv=0xc024561c (0xc024561c)
         rsp=0xc226cf10 rfp=0xc226cf20
         r4=0xc2281200
0xc02455f4 (ttwakeup+??)
         scp=0xc02455f4 rlv=0xc02b6490 (0xc02b6490)
         rsp=0xc226cf24 rfp=0xc226cf4c
         r4=0x00000000
0xc02b6418 (sacomstart+??)
         scp=0xc02b6418 rlv=0xc0243e6c (0xc0243e6c)
         rsp=0xc226cf50 rfp=0xc226cf5c
         r10=0xc03ce4ac r9=0x00000000
         r8=0xc0386538 r7=0xc2281200 r6=0xc0cea200 r5=0xc21da0e4
         r4=0xc21da2cc
0xc0243e5c (??)
         scp=0xc0243e5c rlv=0xc02b6004 (0xc02b6004)
         rsp=0xc226cf60 rfp=0xc226cf88
0xc02b5e8c (sacomintr??)
         scp=0xc02b5e8c rlv=0xc020aca0 (netbsd:softint_thread+0x98)
         rsp=0xc226cf8c rfp=0xc226cfb0
         r10=0xc03ce4ac r9=0x00000000
         r8=0xc0386538 r7=0x00000000 r6=0xc180d260 r5=0xc21da0e4
         r4=0xc21da2cc
netbsd:softint_thread+0xc
         scp=0xc020ac14 rlv=0xc02aa9fc (netbsd:lwp_trampoline+0x14)
         rsp=0xc226cfb4 rfp=0x00000000
         r10=0x00000000 r8=0x00000000
         r7=0x00000000 r6=0x00000000 r5=0xc21da0e4 r4=0xc020ac08
db>

(This looks to be one of the CV's initialized in ttymalloc())


Gmane