svn commit: r215650 - in projects/sbruno_64cpus/sys/amd64: amd64
include
Sean Bruno
sbruno at FreeBSD.org
Mon Nov 22 01:22:24 UTC 2010
Author: sbruno
Date: Mon Nov 22 01:22:24 2010
New Revision: 215650
URL: http://svn.freebsd.org/changeset/base/215650
Log:
Patch from alc@ to test large memory systems.
I can't quite see how to build a release ISO from
a local directory, so commit this here for testing.
Modified:
projects/sbruno_64cpus/sys/amd64/amd64/pmap.c
projects/sbruno_64cpus/sys/amd64/include/pmap.h
projects/sbruno_64cpus/sys/amd64/include/vmparam.h
Modified: projects/sbruno_64cpus/sys/amd64/amd64/pmap.c
==============================================================================
--- projects/sbruno_64cpus/sys/amd64/amd64/pmap.c Mon Nov 22 01:11:28 2010 (r215649)
+++ projects/sbruno_64cpus/sys/amd64/amd64/pmap.c Mon Nov 22 01:22:24 2010 (r215650)
@@ -530,6 +530,8 @@ create_pagetables(vm_paddr_t *firstaddr)
/* Connect the Direct Map slot up to the PML4 */
((pdp_entry_t *)KPML4phys)[DMPML4I] = DMPDPphys;
((pdp_entry_t *)KPML4phys)[DMPML4I] |= PG_RW | PG_V | PG_U;
+ ((pdp_entry_t *)KPML4phys)[DMPML4I + 1] = DMPDPphys + PAGE_SIZE;
+ ((pdp_entry_t *)KPML4phys)[DMPML4I + 1] |= PG_RW | PG_V | PG_U;
/* Connect the KVA slot up to the PML4 */
((pdp_entry_t *)KPML4phys)[KPML4I] = KPDPphys;
@@ -1620,6 +1622,7 @@ pmap_pinit(pmap_t pmap)
/* Wire in kernel global address entries. */
pmap->pm_pml4[KPML4I] = KPDPphys | PG_RW | PG_V | PG_U;
pmap->pm_pml4[DMPML4I] = DMPDPphys | PG_RW | PG_V | PG_U;
+ pmap->pm_pml4[DMPML4I + 1] = (DMPDPphys + PAGE_SIZE) | PG_RW | PG_V | PG_U;
/* install self-referential address mapping entry(s) */
pmap->pm_pml4[PML4PML4I] = VM_PAGE_TO_PHYS(pml4pg) | PG_V | PG_RW | PG_A | PG_M;
@@ -1879,6 +1882,7 @@ pmap_release(pmap_t pmap)
pmap->pm_pml4[KPML4I] = 0; /* KVA */
pmap->pm_pml4[DMPML4I] = 0; /* Direct Map */
+ pmap->pm_pml4[DMPML4I + 1] = 0; /* Direct Map */
pmap->pm_pml4[PML4PML4I] = 0; /* Recursive Mapping */
m->wire_count--;
Modified: projects/sbruno_64cpus/sys/amd64/include/pmap.h
==============================================================================
--- projects/sbruno_64cpus/sys/amd64/include/pmap.h Mon Nov 22 01:11:28 2010 (r215649)
+++ projects/sbruno_64cpus/sys/amd64/include/pmap.h Mon Nov 22 01:22:24 2010 (r215650)
@@ -125,7 +125,7 @@
#define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */
#define NUPDE (NUPDPE*NPDEPG) /* number of userland PD entries */
-#define NDMPML4E 1 /* number of dmap PML4 slots */
+#define NDMPML4E 2 /* number of dmap PML4 slots */
/*
* The *PDI values control the layout of virtual memory
@@ -133,7 +133,7 @@
#define PML4PML4I (NPML4EPG/2) /* Index of recursive pml4 mapping */
#define KPML4I (NPML4EPG-1) /* Top 512GB for KVM */
-#define DMPML4I (KPML4I-1) /* Next 512GB down for direct map */
+#define DMPML4I (KPML4I-3) /* Next 512GB down for direct map */
#define KPDPI (NPDPEPG-2) /* kernbase at -2GB */
Modified: projects/sbruno_64cpus/sys/amd64/include/vmparam.h
==============================================================================
--- projects/sbruno_64cpus/sys/amd64/include/vmparam.h Mon Nov 22 01:11:28 2010 (r215649)
+++ projects/sbruno_64cpus/sys/amd64/include/vmparam.h Mon Nov 22 01:22:24 2010 (r215650)
@@ -176,7 +176,7 @@
#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-512, 0, 0)
#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0)
-#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0)
+#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+2, 0, 0, 0)
#define KERNBASE KVADDR(KPML4I, KPDPI, 0, 0)
More information about the svn-src-projects
mailing list