Subject: Re: Some alpha problems in current
To: Andrew Doran <ad@netbsd.org>
From: Michael L. Hitch <mhitch@NetBSD.org>
List: current-users
Date: 02/02/2008 14:57:10
On Sat, 12 Jan 2008, Andrew Doran wrote:

> I made some changes to the pmap that could help the situation (rev 1.230 of
> arch/alpha/alpha/pmap.c). Can you try updating and see if the problem still
> persists? If it happens again, it would be really useful if you could get
> a backtrace from all the CPUs. For example:
>
> mach cpu 0
> bt
> mach cpu 1
> bt
> mach cpu 2
> bt

   I finally got around to trying out a more current kernel on one my MP 
alphas, and have problems with hangs.  I can't get tracebacks from the 
other CPU - most likely because it is spinning on a lock or mutex with 
interrupts disabled and the IPI to suspend it can not be processed.  A 
couple of times the halted CPU appears to be in _kernel_lock().  The last
one appears to be in mutex_vector_enter(), called from 
pmap_tlb_shootdown().  I have rev 1.231 of pmap.c.

   In the past, I've been able to run a LOCKDEBUG kernel and get some kind
of idea what locks each CPU had.  Attempting to run a LOCKDEBUG kernel now
just locks up the machine hard shortly after the kernel is entered on 
boot.  I haven't even been able to halt it - I can only reset it or cycle
power.



P00>>>c

continuing CPU 0
CP - RESTORE_TERM routine to be called
panic: user requested console halt
Stopped in pid 0.25 (system) at netbsd:cpu_Debugger+0x4:        ret 
zero,(ra
)
db{0}> t
cpu_Debugger() at netbsd:cpu_Debugger+0x4
panic() at netbsd:panic+0x1c8
console_restart() at netbsd:console_restart+0x78
XentRestart() at netbsd:XentRestart+0x90
--- console restart (from ipl 0) ---
mutex_vector_enter() at netbsd:mutex_vector_enter+0x320
pmap_tlb_shootdown() at netbsd:pmap_tlb_shootdown+0xc0
pmap_kenter_pa() at netbsd:pmap_kenter_pa+0x100
uvm_pagermapin() at netbsd:uvm_pagermapin+0x194
genfs_gop_write() at netbsd:genfs_gop_write+0x48
genfs_do_putpages() at netbsd:genfs_do_putpages+0x73c
VOP_PUTPAGES() at netbsd:VOP_PUTPAGES+0xcc
ffs_full_fsync() at netbsd:ffs_full_fsync+0xd4
ffs_fsync() at netbsd:ffs_fsync+0x6c
VOP_FSYNC() at netbsd:VOP_FSYNC+0xcc
sched_sync() at netbsd:sched_sync+0x218
exception_return() at netbsd:exception_return
--- root of call graph ---

$ ident /netbsd-test-mp|grep pmap
      $NetBSD: pmap.c,v 1.231 2008/01/15 18:48:51 ad Exp $


--
Michael L. Hitch			mhitch@NetBSD.org