summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-06-27 17:22:18 +0000
committerjhb <jhb@FreeBSD.org>2014-06-27 17:22:18 +0000
commitbdcad19a9af9c3d984703dbaf24fc05b1ec71bc5 (patch)
tree7e9e2c80bfc23e779d3f31084afd22dd5d26f660 /sys/i386
parent79ef481e2b33a1c7f8d214041fe5b51b47d6e9f9 (diff)
downloadFreeBSD-src-bdcad19a9af9c3d984703dbaf24fc05b1ec71bc5.zip
FreeBSD-src-bdcad19a9af9c3d984703dbaf24fc05b1ec71bc5.tar.gz
MFC 261781:
Don't waste a page of KVA for the boot-time memory test on x86. For amd64, reuse the first page of the crashdumpmap as CMAP1/CADDR1. For i386, remove CMAP1/CADDR1 entirely and reuse CMAP3/CADDR3 for the memory test.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/machdep.c4
-rw-r--r--sys/i386/i386/pmap.c8
-rw-r--r--sys/i386/include/pmap.h4
-rw-r--r--sys/i386/xen/pmap.c4
4 files changed, 9 insertions, 11 deletions
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 2e1785b..9e25cd9 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -2387,7 +2387,7 @@ physmap_done:
phys_avail[pa_indx++] = physmap[0];
phys_avail[pa_indx] = physmap[0];
dump_avail[da_indx] = physmap[0];
- pte = CMAP1;
+ pte = CMAP3;
/*
* Get dcons buffer address
@@ -2409,7 +2409,7 @@ physmap_done:
end = trunc_page(physmap[i + 1]);
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
int tmp, page_bad, full;
- int *ptr = (int *)CADDR1;
+ int *ptr = (int *)CADDR3;
full = FALSE;
/*
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index d5f31ec..1f9acfe 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -256,11 +256,10 @@ struct sysmaps {
caddr_t CADDR2;
};
static struct sysmaps sysmaps_pcpu[MAXCPU];
-pt_entry_t *CMAP1 = 0;
-static pt_entry_t *CMAP3;
+pt_entry_t *CMAP3;
static pd_entry_t *KPTD;
-caddr_t CADDR1 = 0, ptvmmap = 0;
-static caddr_t CADDR3;
+caddr_t ptvmmap = 0;
+caddr_t CADDR3;
struct msgbuf *msgbufp = 0;
/*
@@ -434,7 +433,6 @@ pmap_bootstrap(vm_paddr_t firstaddr)
SYSMAP(caddr_t, sysmaps->CMAP1, sysmaps->CADDR1, 1)
SYSMAP(caddr_t, sysmaps->CMAP2, sysmaps->CADDR2, 1)
}
- SYSMAP(caddr_t, CMAP1, CADDR1, 1)
SYSMAP(caddr_t, CMAP3, CADDR3, 1)
/*
diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h
index 0303c60..100475c 100644
--- a/sys/i386/include/pmap.h
+++ b/sys/i386/include/pmap.h
@@ -420,8 +420,8 @@ struct pv_chunk {
#ifdef _KERNEL
-extern caddr_t CADDR1;
-extern pt_entry_t *CMAP1;
+extern caddr_t CADDR3;
+extern pt_entry_t *CMAP3;
extern vm_paddr_t phys_avail[];
extern vm_paddr_t dump_avail[];
extern int pseflag;
diff --git a/sys/i386/xen/pmap.c b/sys/i386/xen/pmap.c
index 9f3e8bb..fa9bda8 100644
--- a/sys/i386/xen/pmap.c
+++ b/sys/i386/xen/pmap.c
@@ -249,9 +249,9 @@ struct sysmaps {
caddr_t CADDR2;
};
static struct sysmaps sysmaps_pcpu[MAXCPU];
-static pt_entry_t *CMAP3;
+pt_entry_t *CMAP3;
caddr_t ptvmmap = 0;
-static caddr_t CADDR3;
+caddr_t CADDR3;
struct msgbuf *msgbufp = 0;
/*
OpenPOWER on IntegriCloud