Page MenuHomeFreeBSD

D21642.id62048.diff
No OneTemporary

D21642.id62048.diff

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/amd64/include/vmparam.h
===================================================================
--- sys/amd64/include/vmparam.h
+++ sys/amd64/include/vmparam.h
@@ -217,6 +217,7 @@
* allocated on the correct memory domains.
*/
#define PMAP_HAS_PAGE_ARRAY 1
+#define PMAP_PA_ADDRESS VM_MIN_KERNEL_ADDRESS
/*
* How many physical pages per kmem arena virtual page.
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;
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,

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 20, 5:22 AM (15 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30000903
Default Alt Text
D21642.id62048.diff (2 KB)

Event Timeline