tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: LOCKDEBUG_BARRIER in mi_userret (was: Re: Another force unmount failure)



   Date: Fri, 17 Jul 2015 13:44:28 +0200
   From: manu%netbsd.org@localhost (Emmanuel Dreyfus)

   I tried LOCKDEBUG to get some hints, and now I get a nice 
   panic (see below).

   gdb suggests this happens in LOCKDEBUG_BARRIER(NULL, 0) in 
   mi_userret().

   Anyone knowledgable can tell me what is it so that I get some ideas
   of what needs to be fixed? I have the feeling this detects I leave
   the kernel while a lock was not released, is that the problem?

Correct.  The part you want to look at is:

   Reader / writer lock error: lockdebug_barrier: sleep lock held

   lock address : 0x00000000c2965dc0 type     :     sleep/adaptive
   initialized  : 0x00000000c0400b1b
   shared holds :                  0 exclusive:                  1
   shares wanted:                  0 exclusive:                  0
   current cpu  :                  0 last held:                  0
   current lwp  : 0x00000000c2a1bd20 last held: 0x00000000c2a1bd20
   last locked* : 0x00000000c018b217 unlocked : 0x00000000c018b2dd
                  ^^^^^^^^^^^^^^^^^^
   owner/count  : 0x00000000c2a1bd20 flags    : 0x0000000000000004

`Last locked' tells you the return address of the call to rw_enter
that last acquired the lock.  (The other addresses may be useful for
other lockdebug panics but aren't likely to be of much use here.)


Home | Main Index | Thread Index | Old Index