pthread_mutex_timedlock on sparc64

John Baldwin jhb at freebsd.org
Fri Apr 21 13:04:36 UTC 2006


On Thursday 20 April 2006 10:42 pm, Kip Macy wrote:
> > > 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.

Couldn't it be a NULL pointer deref in vm_map_entry_splay()?

> > > -- 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
>
> _______________________________________________
> freebsd-sparc64 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-sparc64
> To unsubscribe, send any mail to "freebsd-sparc64-unsubscribe at freebsd.org"

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-threads mailing list