swap_pager_swap_init panic
Eric Anholt
eric at anholt.net
Sat May 5 22:47:28 UTC 2007
On Fri, 2007-05-04 at 20:36 -0700, David G Lawrence wrote:
> > I've got an SMP netbooting test machine, which panics on startup almost
> > 100% of the time with the issue that has been reported since 2006-12-02
> > at least:
> > db> where
> > Tracing pid 40 tid 100040 td 0xffffff003b9e24c0
> > kdb_enter() at kdb_enter+0x2f
> > panic() at panic+0x291
> > swap_pager_swap_init() at swap_pager_swap_init+0x20c
>
> I had the same problem with one of my SMP machines. It's a curious problem
> since I can take the same hard drive over to a slightly different SMP machine
> and not see the panic. It appears to be a race of some kind in the VM system
> initialization, right after the second CPU is started.
> Try this patch out and let me know if it fixes it for you...
>
>
> Index: uma_core.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/vm/uma_core.c,v
> retrieving revision 1.119.2.19
> diff -c -r1.119.2.19 uma_core.c
> *** uma_core.c 11 Feb 2007 03:31:19 -0000 1.119.2.19
> --- uma_core.c 1 Mar 2007 06:52:26 -0000
> ***************
> *** 1615,1621 ****
> #endif
> args.name = "UMA Zones";
> args.size = sizeof(struct uma_zone) +
> ! (sizeof(struct uma_cache) * (mp_maxid + 1));
> args.ctor = zone_ctor;
> args.dtor = zone_dtor;
> args.uminit = zero_init;
> --- 1615,1621 ----
> #endif
> args.name = "UMA Zones";
> args.size = sizeof(struct uma_zone) +
> ! (sizeof(struct uma_cache) * (mp_maxid + 33));
> args.ctor = zone_ctor;
> args.dtor = zone_dtor;
> args.uminit = zero_init;
>
> Note that I don't claim this is a proper fix - it is just a work-around
> that works for me.
I've got the machine busy doing something else right now. What's this
patch supposed to do? The panic clearly looks like a race to me -- the
swapper's got the keg's recurse flag bumped (that printf in the
backtrace I think was the one just after taking the recurse flag back
down), and pagedaemon is checking for recursion on using the keg, and
failing.
--
Eric Anholt anholt at FreeBSD.org
eric at anholt.net eric.anholt at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070505/70cf7169/attachment.pgp
More information about the freebsd-current
mailing list