diff options
author | peter <peter@FreeBSD.org> | 2001-08-25 02:20:02 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-08-25 02:20:02 +0000 |
commit | 70aca15c211e6081406e6a0b661a41594a64187a (patch) | |
tree | 507801bec2b11b2c70916032367a1906891044d6 /sys/amd64/include | |
parent | d244a653e5b56edafe3e4993347279dff7000cff (diff) | |
download | FreeBSD-src-70aca15c211e6081406e6a0b661a41594a64187a.zip FreeBSD-src-70aca15c211e6081406e6a0b661a41594a64187a.tar.gz |
Optionize UPAGES for the i386. As part of this I split some of the low
level implementation stuff out of machine/globaldata.h to avoid exposing
UPAGES to lots more places. The end result is that we can double
the kernel stack size with 'options UPAGES=4' etc.
This is mainly being done for the benefit of a MFC to RELENG_4 at some
point. -current doesn't really need this so much since each interrupt
runs on its own kstack.
Diffstat (limited to 'sys/amd64/include')
-rw-r--r-- | sys/amd64/include/mptable.h | 2 | ||||
-rw-r--r-- | sys/amd64/include/pcpu.h | 20 |
2 files changed, 2 insertions, 20 deletions
diff --git a/sys/amd64/include/mptable.h b/sys/amd64/include/mptable.h index eaf508c..d912e0c 100644 --- a/sys/amd64/include/mptable.h +++ b/sys/amd64/include/mptable.h @@ -26,6 +26,7 @@ */ #include "opt_cpu.h" +#include "opt_upages.h" #ifdef SMP #include <machine/smptests.h> @@ -70,6 +71,7 @@ #include <machine/tss.h> #include <machine/specialreg.h> #include <machine/globaldata.h> +#include <machine/privatespace.h> #if defined(APIC_IO) #include <machine/md_var.h> /* setidt() */ diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h index cda7b1e..37388aa 100644 --- a/sys/amd64/include/pcpu.h +++ b/sys/amd64/include/pcpu.h @@ -74,26 +74,6 @@ struct globaldata { #endif }; -#ifdef SMP -/* - * This is the upper (0xff800000) address space layout that is per-cpu. - * It is setup in locore.s and pmap.c for the BSP and in mp_machdep.c for - * each AP. genassym helps export this to the assembler code. - */ -struct privatespace { - /* page 0 - data page */ - struct globaldata globaldata; - char __filler0[PAGE_SIZE - sizeof(struct globaldata)]; - - /* page 1 - idle stack (UPAGES pages) */ - char idlestack[UPAGES * PAGE_SIZE]; - /* page 1+UPAGES... */ -}; - -extern struct privatespace SMP_prvspace[]; - -#endif - #endif /* _KERNEL */ #endif /* ! _MACHINE_GLOBALDATA_H_ */ |