Date: Mon, 22 Nov 2010 01:22:24 +0000 (UTC) From: Sean Bruno <sbruno@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r215650 - in projects/sbruno_64cpus/sys/amd64: amd64 include Message-ID: <201011220122.oAM1MO6o073848@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011220122.oAM1MO6o073848>