Subject: Re: WARNING: SPL NOT LOWERED ON SYSCALL 0 0 EXIT
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Andrew Doran <ad@netbsd.org>
List: port-amd64
Date: 08/13/2007 14:12:42
On Sun, Aug 12, 2007 at 10:57:24PM -0400, Thor Lancelot Simon wrote:

> We just got one of these on the pkgsrc bulk-build machine, which is a
> 4-core (2 x dual-core Opteron) amd64 machine.  Unfortunately, as one
> can see from the traceback below, well, it's a bit hard to get a
> traceback.
> 
> The kernel is -current as of today, cross-compiled on macppc for various
> obscure reasons.  Any ideas what causes this?  I am a bit curious about
> Opteron erratum 106: 
> 
> http://lists.freebsd.org/pipermail/freebsd-amd64/2005-May/004693.html

I'll have a look into that. I have new TLB shootdown code for x86 almost
ready to go in.

> WARNING: SPL NOT LOWERED ON SYSCALL 0 0 EXIT 536e08 d 

That should be showing the syscall number but I strongly suspect that
it's broken.

> ^MStopped in pid 21631.1 (cat) at netbsd:Xsyscall+0x1dd:  movl
> $0,%gs:0x28c(%
> ri
> ^Mp)
> ^Mdb{1}> trace   ^H ^H^H ^H^H ^H
> ^MXsyscall() at netbsd:Xsyscall+0x1dd
> ^Mcpu1: spinout while in debugger

If it happens again, can you get the value of %esp from 'show regs' and
then do a..

	x/200a foo

.. on it? That should pull some info from the stack to let us know what the
thread has been up to while in the kenel. I guess this system is not running
with lockdebug. If it's a spinlock being leaked somewhere, lockdebug would
trap it.

Andrew