Re: SMP panic

From: Andrew Thompson <thompsa_at_freebsd.org>
Date: Fri, 11 May 2007 16:35:47 +1200
On Fri, May 11, 2007 at 06:49:42AM +0300, Kostik Belousov wrote:
> On Fri, May 11, 2007 at 02:05:55PM +1200, Andrew Thompson wrote:
> > Hi,
> > 
> > 
> > I am having the following panic on my dual p3-500 box. I have tracked it
> > back to this commit[1], a HEAD cvs checkout of '2006-12-06 06:30 UTC' works
> > and '2006-12-06 06:35 UTC' panics. Removing SMP also avoids this panic.
> > 			= DPL 0, pres 1, def32 1, gran 1
> > processor eflags	= interrupt enabled, resume, IOPL = 0
> > current process		= 1 (swapper)
> > [thread pid 1 tid 100007 ]
> > Stopped at      uma_zalloc_arg+0x31:    pushl   0(%esi)
> > db> tr
> > Tracing pid 1 tid 100007 td 0xc298d360
> > uma_zalloc_arg(0,0,2) at uma_zalloc_arg+0x31
> > vfs_mount_alloc(0,c09a6940,c0913d40,c298d360,c0661a14,...) at vfs_mount_alloc+0x18
> > devfs_first(c0661a14,c0661a14,0,d3b38d04,c0661a5f,...) at devfs_first+0x36
> > vfs_mountroot(c298f000,c298d360,0,c0879c93,20,...) at vfs_mountroot+0x3e
> > start_init(0,d3b38d38) at start_init+0x4b
> > fork_exit(c0661a14,0,d3b38d38) at fork_exit+0xa8
> > fork_trampoline() at fork_trampoline+0x8
> > --- trap 0x1, eip = 0, esp = 0xd3b38d6c, ebp = 0 ---
> > db> 
> Creation of mount_zone in vfs_mount_root() failed, no idea why.

I have been looking into this and its failing on this section of code

sys/vm/uma_core.c:uma_zone_slab
        if (keg->uk_flags & UMA_ZFLAG_INTERNAL && keg->uk_recurse != 0)
                if ((zone != slabzone) && (zone != slabrefzone))
                        return (NULL);


I am able to boot now if I add (zone != zones) to the list of checks.
This only happens on SMP so is there some race?


Andrew
Received on Fri May 11 2007 - 02:35:49 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:10 UTC