summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/param.h
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-11-23 21:09:23 +0000
committermarcel <marcel@FreeBSD.org>2009-11-23 21:09:23 +0000
commitf2027e763f7c6a882b76073519babf36569b7865 (patch)
tree292a1584a20586a615048d5b45193c1175898334 /sys/ia64/include/param.h
parent263e6c8ef544c8ef5cd936a0d9539013b100be2a (diff)
downloadFreeBSD-src-f2027e763f7c6a882b76073519babf36569b7865.zip
FreeBSD-src-f2027e763f7c6a882b76073519babf36569b7865.tar.gz
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...
Diffstat (limited to 'sys/ia64/include/param.h')
-rw-r--r--sys/ia64/include/param.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ia64/include/param.h b/sys/ia64/include/param.h
index 4c8e8b9..331af7a 100644
--- a/sys/ia64/include/param.h
+++ b/sys/ia64/include/param.h
@@ -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 */
OpenPOWER on IntegriCloud