summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-07-27 01:08:59 +0000
committerpeter <peter@FreeBSD.org>2001-07-27 01:08:59 +0000
commit036aced92fa45d63ef648349e436e97556f5150c (patch)
tree661223816ab22ad03b6cd11c3f3145545d42aef4 /sys/powerpc
parent7f68356a77f53f08003fe005f0426bb8f22a0d1f (diff)
downloadFreeBSD-src-036aced92fa45d63ef648349e436e97556f5150c.zip
FreeBSD-src-036aced92fa45d63ef648349e436e97556f5150c.tar.gz
Make PMAP_SHPGPERPROC tunable. One shouldn't need to recompile a kernel
for this, since it is easy to run into with large systems with lots of shared mmap space. Obtained from: yahoo
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/aim/mmu_oea.c6
-rw-r--r--sys/powerpc/powerpc/mmu_oea.c6
-rw-r--r--sys/powerpc/powerpc/pmap.c6
3 files changed, 15 insertions, 3 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c
index b7f2d05..cc28d4b 100644
--- a/sys/powerpc/aim/mmu_oea.c
+++ b/sys/powerpc/aim/mmu_oea.c
@@ -62,6 +62,7 @@ static const char rcsid[] =
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/malloc.h>
#include <sys/msgbuf.h>
@@ -1639,7 +1640,10 @@ pmap_growkernel(vm_offset_t addr)
void
pmap_init2()
{
- pv_entry_max = PMAP_SHPGPERPROC * maxproc + vm_page_array_size;
+ int shpgperproc = PMAP_SHPGPERPROC;
+
+ TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+ pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
pv_entry_high_water = 9 * (pv_entry_max / 10);
zinitna(pvzone, &pvzone_obj, NULL, 0, pv_entry_max, ZONE_INTERRUPT, 1);
}
diff --git a/sys/powerpc/powerpc/mmu_oea.c b/sys/powerpc/powerpc/mmu_oea.c
index b7f2d05..cc28d4b 100644
--- a/sys/powerpc/powerpc/mmu_oea.c
+++ b/sys/powerpc/powerpc/mmu_oea.c
@@ -62,6 +62,7 @@ static const char rcsid[] =
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/malloc.h>
#include <sys/msgbuf.h>
@@ -1639,7 +1640,10 @@ pmap_growkernel(vm_offset_t addr)
void
pmap_init2()
{
- pv_entry_max = PMAP_SHPGPERPROC * maxproc + vm_page_array_size;
+ int shpgperproc = PMAP_SHPGPERPROC;
+
+ TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+ pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
pv_entry_high_water = 9 * (pv_entry_max / 10);
zinitna(pvzone, &pvzone_obj, NULL, 0, pv_entry_max, ZONE_INTERRUPT, 1);
}
diff --git a/sys/powerpc/powerpc/pmap.c b/sys/powerpc/powerpc/pmap.c
index b7f2d05..cc28d4b 100644
--- a/sys/powerpc/powerpc/pmap.c
+++ b/sys/powerpc/powerpc/pmap.c
@@ -62,6 +62,7 @@ static const char rcsid[] =
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/malloc.h>
#include <sys/msgbuf.h>
@@ -1639,7 +1640,10 @@ pmap_growkernel(vm_offset_t addr)
void
pmap_init2()
{
- pv_entry_max = PMAP_SHPGPERPROC * maxproc + vm_page_array_size;
+ int shpgperproc = PMAP_SHPGPERPROC;
+
+ TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+ pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
pv_entry_high_water = 9 * (pv_entry_max / 10);
zinitna(pvzone, &pvzone_obj, NULL, 0, pv_entry_max, ZONE_INTERRUPT, 1);
}
OpenPOWER on IntegriCloud