Port-alpha archive

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

Re: alpha LOCKDEBUG hang

On Thu, 21 Feb 2008, Andrew Doran wrote:

Should be fixed with pmap.c revision 1.232.


A LOCKDEBUG kernel now boots (and fails in pmap_do_tlb_shootdown with a recursive call to pmap_do_tlb_shootdown [which may explain the problem I've been looking at there]).

However, a non-LOCKDEBUG kernel now gives me a "Mutex error: mutex_vector_enter: locking against myself" lock error panic:

lock address : 0xfffffc0000b97940
current cpu  :                  0
current lwp  : 0xfffffc006f2d9860
owner field  : 0xfffffc006f2d9860 wait/spin:                0/0

panic: lock error
Stopped in pid 7.1 (fsck_ffs) at netbsd:cpu_Debugger+0x4: ret z
db{0}> t
cpu_Debugger() at netbsd:cpu_Debugger+0x4
panic() at netbsd:panic+0x264
lockdebug_abort() at netbsd:lockdebug_abort+0x60
mutex_abort() at netbsd:mutex_abort+0x38
mutex_vector_enter() at netbsd:mutex_vector_enter+0x588
pmap_physpage_delref() at netbsd:pmap_physpage_delref+0xb8
pmap_l3pt_delref() at netbsd:pmap_l3pt_delref+0x74
pmap_remove_mapping() at netbsd:pmap_remove_mapping+0x124
pmap_page_protect() at netbsd:pmap_page_protect+0x124
genfs_do_putpages() at netbsd:genfs_do_putpages+0xa88
vinvalbuf() at netbsd:vinvalbuf+0x70
ffs_reload() at netbsd:ffs_reload+0x640
ffs_mount() at netbsd:ffs_mount+0x640
VFS_MOUNT() at netbsd:VFS_MOUNT+0x64
do_sys_mount() at netbsd:do_sys_mount+0x2ec
sys___mount50() at netbsd:sys___mount50+0x38
syscall_plain() at netbsd:syscall_plain+0x1c4
XentSys() at netbsd:XentSys+0x60
--- syscall (410) ---
--- user mode ---
db{0}> x/x 0xfffffc0000b97940
netbsd:pmap_pvh_locks+0x240:    6f2d9860
db{0}> reboot 0c

pmap_page_protect() has the lock, and by calling pmap_remove_mapping(), eventually ends up in pmap_physpage_delref() which tries to get the same lock.

Michael L. Hitch                        mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University        Bozeman, MT     USA

Home | Main Index | Thread Index | Old Index