From cf684ede2716cea7d1d2d6135e6a4c658b6d015e Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 10 Mar 2010 19:50:52 +0000 Subject: [PATCH] Make NKPT a kernel option on i386 so that it can be set to a non-default value from kernel config files. Tested by: Charles Sprickman spork of bway net MFC after: 2 weeks --- sys/conf/options.i386 | 1 + sys/i386/conf/NOTES | 9 +++++++++ sys/i386/i386/mp_machdep.c | 1 + sys/i386/xen/mp_machdep.c | 1 + 4 files changed, 12 insertions(+) diff --git a/sys/conf/options.i386 b/sys/conf/options.i386 index 83f828661c4e..333ec6a8dfbf 100644 --- a/sys/conf/options.i386 +++ b/sys/conf/options.i386 @@ -12,6 +12,7 @@ I586_PMC_GUPROF opt_i586_guprof.h MAXMEM MPTABLE_FORCE_HTT MP_WATCHDOG +NKPT opt_pmap.h PERFMON PMAP_SHPGPERPROC opt_pmap.h POWERFAIL_NMI opt_trap.h diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index af3da83d90e3..cc62ed93b459 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -862,6 +862,15 @@ options PMAP_SHPGPERPROC=201 # options KVA_PAGES=260 +# +# Number of initial kernel page table pages used for early bootstrap. +# This number should include enough pages to map the kernel, any +# modules or other data loaded with the kernel by the loader, and data +# structures allocated before the VM system is initialized such as the +# vm_page_t array. Each page table page maps 4MB (2MB with PAE). +# +options NKPT=31 + ##################################################################### # ABI Emulation diff --git a/sys/i386/i386/mp_machdep.c b/sys/i386/i386/mp_machdep.c index 6729288d69c6..716c25e7e46d 100644 --- a/sys/i386/i386/mp_machdep.c +++ b/sys/i386/i386/mp_machdep.c @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include "opt_cpu.h" #include "opt_kstack_pages.h" #include "opt_mp_watchdog.h" +#include "opt_pmap.h" #include "opt_sched.h" #include "opt_smp.h" diff --git a/sys/i386/xen/mp_machdep.c b/sys/i386/xen/mp_machdep.c index d408e971278f..76a919f7f234 100644 --- a/sys/i386/xen/mp_machdep.c +++ b/sys/i386/xen/mp_machdep.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include "opt_cpu.h" #include "opt_kstack_pages.h" #include "opt_mp_watchdog.h" +#include "opt_pmap.h" #include "opt_sched.h" #include "opt_smp.h"