pthread_mutex_timedlock on sparc64

Kip Macy kip.macy at gmail.com
Fri Apr 21 02:42:30 UTC 2006


> > panic: _mtx_lock_sleep: recursed on non-recursive mutex system map @ ../../../vm/vm_map.c:2993
> > panic() at panic+0x164
> > _mtx_lock_sleep() at _mtx_lock_sleep+0x40
> > _mtx_lock_flags() at _mtx_lock_flags+0x98
> > _vm_map_lock_read() at _vm_map_lock_read+0x1c
> > vm_map_lookup() at vm_map_lookup+0x1c
> > vm_fault() at vm_fault+0x68
> > trap_pfault() at trap_pfault+0x1a8
> > trap() at trap+0x2b0

This is a bug in the sparc64 pmap implementation. The kernel shouldn't
be taking page faults at this point.

     -Kip


> > -- fast data access mmu miss tar=0xe85a6000 %o7=0xc02f3b08 --
> > vm_map_entry_splay() at vm_map_entry_splay+0x10
> > vm_map_find() at vm_map_find+0x34
> > kmem_alloc_nofault() at kmem_alloc_nofault+0x44
> > vm_thread_new() at vm_thread_new+0x44
> > thread_init() at thread_init+0x8
> > slab_zalloc() at slab_zalloc+0x264
> > uma_zone_slab() at uma_zone_slab+0x1ac
> > uma_zalloc_bucket() at uma_zalloc_bucket+0x1b4
> > uma_zalloc_arg() at uma_zalloc_arg+0x398
> > thread_alloc() at thread_alloc+0x18
> > create_thread() at create_thread+0x78
> > thr_new() at thr_new+0x64
> > syscall() at syscall+0x2dc
> > -- syscall (455, FreeBSD ELF64, thr_new) %o7=0x40348e7c --
>
> It may be a deeper vm problem.
>
> Kris
>
>
>


More information about the freebsd-threads mailing list