Index: sys/amd64/include/pmap.h =================================================================== --- sys/amd64/include/pmap.h +++ sys/amd64/include/pmap.h @@ -200,13 +200,6 @@ */ #define NDMPML4E 8 -/* - * NPAPML4E is the maximum number of PML4 entries that will be - * used to implement the page array. This should be roughly 3% of - * NPDPML4E owing to 3% overhead for struct vm_page. - */ -#define NPAPML4E 1 - /* * These values control the layout of virtual memory. The starting address * of the direct map, which is controlled by DMPML4I, must be a multiple of @@ -226,8 +219,7 @@ #define PML4PML4I (NPML4EPG/2) /* Index of recursive pml4 mapping */ #define KPML4BASE (NPML4EPG-NKPML4E) /* KVM at highest addresses */ -#define PAPML4I (KPML4BASE-1-NPAPML4E) /* Below KVM */ -#define DMPML4I rounddown(PAPML4I-NDMPML4E, NDMPML4E) /* Below pages */ +#define DMPML4I rounddown(KPML4BASE-NDMPML4E, NDMPML4E) /* Below KVM */ #define KPML4I (NPML4EPG-1) #define KPDPI (NPDPEPG-2) /* kernbase at -2GB */ Index: sys/vm/vm_page.h =================================================================== --- sys/vm/vm_page.h +++ sys/vm/vm_page.h @@ -454,7 +454,7 @@ * */ -extern vm_page_t vm_page_array; /* First resident page in table */ +extern vm_page_t vm_page_array; /* first resident page in table */ extern long vm_page_array_size; /* number of vm_page_t's */ extern long first_page; /* first physical page number */ Index: sys/vm/vm_page.c =================================================================== --- sys/vm/vm_page.c +++ sys/vm/vm_page.c @@ -136,9 +136,9 @@ */ vm_page_t bogus_page; -vm_page_t vm_page_array; -long vm_page_array_size; -long first_page; +vm_page_t __read_mostly vm_page_array; +long __read_mostly vm_page_array_size; +long __read_mostly first_page; static int boot_pages; SYSCTL_INT(_vm, OID_AUTO, boot_pages, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,