Re: swap_pager_swap_init panic

From: David G Lawrence <dg_at_dglawrence.com>
Date: Fri, 4 May 2007 20:36:59 -0700
> 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.

-DG

David G. Lawrence
President
Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500
The FreeBSD Project - http://www.freebsd.org
Pave the road of life with opportunities.
Received on Sat May 05 2007 - 01:37:08 UTC

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