Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Nov 2009 21:09:23 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r199719 - head/sys/ia64/include
Message-ID:  <200911232109.nANL9Nk5069664@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Mon Nov 23 21:09:23 2009
New Revision: 199719
URL: http://svn.freebsd.org/changeset/base/199719

Log:
  Revert previous commit. The problem was not related to overrunning
  the kernel stack at all. The new USB stack simply caused a change
  in timing that triggered a firmware bug more often. The addition
  of PRINTF_BUFR_SIZE apparently triggered the same firmware bug
  even more reliably.
  
  But even with KSTACK_PAGES=5, one instance of the firmware bug
  remained: booting with a CD inserted. This problem was run into
  by accident after installing Debian and having to boot FreeBSD
  to fixup the GPT partitioning (Thanks... not). After bumping
  KSTACK_PAGES to 5, it was pretty unbelievable that the stack was
  still being too small.
  
  After updating the firmware we could boot with a CD inserted and
  KSTACK_PAGES could be lowered back to 4 pages without problems.
  
  Note: It is believed to be a timing related firmware bug, because
  the machine check information showed access to the serial console
  on one CPU and access to the EHCI HCD on the other CPU. Since
  both are devices on the management unit and thus virtualized in
  some way, any execution trace that does not include concurrent
  access to the BMC from both CPUs is fine.
  
  Note also that it's not understood exactly how increasing the
  kernel stack avoided hitting the firmware bug. A change in page
  faults does change timing, but it's not known if that's what's
  happening here.
  
  In any case: the problem is being monitored. Reverting back to
  4 pages for the kernel stack is preferred, because it makes it
  easier to switch to 16K pages (double the page size) without
  wasting too much memory by not being able to half the number of
  pages...

Modified:
  head/sys/ia64/include/param.h

Modified: head/sys/ia64/include/param.h
==============================================================================
--- head/sys/ia64/include/param.h	Mon Nov 23 18:12:09 2009	(r199718)
+++ head/sys/ia64/include/param.h	Mon Nov 23 21:09:23 2009	(r199719)
@@ -92,7 +92,7 @@
 #define	MAXPAGESIZES	1		/* maximum number of supported page sizes */
 
 #ifndef	KSTACK_PAGES
-#define	KSTACK_PAGES	5		/* pages of kernel stack */
+#define	KSTACK_PAGES	4		/* pages of kernel stack */
 #endif
 #define	KSTACK_GUARD_PAGES 0		/* pages of kstack guard; 0 disables */
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911232109.nANL9Nk5069664>