SMP hard lock with libpthread (thread X holds Y but isn'tblocked on a lock)

Jonathan Noack noackjr at alumni.rice.edu
Mon May 16 08:43:45 PDT 2005


On 5/16/2005 10:33 AM, othermark wrote:
> I have an application that uses shared memory/threads and is linked with
> libpthread, running on May 10 -current.  Every time I run it, after a few
> minutes *poof* hard lock on a SMP box.  All debug options are enabled in
> the kernel, but it won't break to debugger.  Here's what appears on the
> console, and addr2line output follows:
> 
> 
> kernel trap 12 with interrupts disabled
> 
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 01
> fault virtual address   = 0x4
> fault code              = supervisor read, page not present
> instruction pointer     = 0x20:0xc06b5dd9
> stack pointer           = 0x28:0xe76eeb4c
> frame pointer           = 0x28:0xe76eeb74
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = resume, IOPL = 0
> current process         = 640 (tgen)
>  
> 
> # addr2line -e kernel.debug 0xc06b5dd9
> /usr/src/sys/kern/subr_turnstile.c:226
> # ls -l /boot/kernel
> total 13920
> -r-xr-xr-x  1 root  wheel  7102901 May 10 17:15 kernel
> 
> 215 #ifndef SMP
> 216                 /*
> 217                  * For UP, we check to see if td is curthread (this shou
> 217 ldn't
> 218                  * ever happen however as it would mean we are in a dead
> 218 lock.)
> 219                  */
> 220                 KASSERT(td != curthread, ("Deadlock detected"));
> 221 #endif
> 222
> 223                 /*
> 224                  * If we aren't blocked on a lock, we should be.
> 225                  */
> 226                 KASSERT(TD_ON_LOCK(td), (
> 227                     "thread %d(%s):%d holds %s but isn't blocked on a lo
> 227 ck\n",
> 228                     td->td_tid, td->td_proc->p_comm, td->td_state,
> 229                     ts->ts_lockobj->lo_name));

I reported the same fatal trap last night, except for me it was an 
instant reboot from X while running Firefox.

-- 
Jonathan Noack | noackjr at alumni.rice.edu | OpenPGP: 0x991D8195
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20050516/b8c3745e/signature.bin


More information about the freebsd-current mailing list