summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/pmap.h
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-12-07 00:54:02 +0000
committermarcel <marcel@FreeBSD.org>2009-12-07 00:54:02 +0000
commitfaf626e11c49da0df2f0d1c370455290efaadec7 (patch)
treec64f7c4308e73eccba373e9ab39e6dec0d88f6d4 /sys/ia64/include/pmap.h
parentc1fd4ec15e0c7afdbf59a0bfb1253de4977ed9b5 (diff)
downloadFreeBSD-src-faf626e11c49da0df2f0d1c370455290efaadec7.zip
FreeBSD-src-faf626e11c49da0df2f0d1c370455290efaadec7.tar.gz
Allocate the VHPT for each CPU in cpu_mp_start(), rather than
allocating MAXCPU VHPTs up-front. This allows us to max-out MAXCPU without memory waste -- MAXCPU is now 32 for SMP kernels. This change also eliminates the VHPT scaling based in the total memory in the system. It's the workload that determines the best size of the VHPT. The workload can be affected by the amount of memory, but not necessarily. For example, there's no performance difference between VHPT sizes of 256KB, 512KB and 1MB when building the LINT kernel. This was observed with a system that has 8GB of memory. By default the kernel will allocate a 1MB VHPT. The user can tune the system with the "machdep.vhpt.log2size" tunable.
Diffstat (limited to 'sys/ia64/include/pmap.h')
-rw-r--r--sys/ia64/include/pmap.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/ia64/include/pmap.h b/sys/ia64/include/pmap.h
index c6b9754..f878d27 100644
--- a/sys/ia64/include/pmap.h
+++ b/sys/ia64/include/pmap.h
@@ -125,6 +125,7 @@ extern int pmap_vhpt_log2size;
#define pmap_unmapbios(va, sz) pmap_unmapdev(va, sz)
vm_offset_t pmap_steal_memory(vm_size_t);
+vm_offset_t pmap_alloc_vhpt(void);
void pmap_bootstrap(void);
void pmap_kenter(vm_offset_t va, vm_offset_t pa);
vm_paddr_t pmap_kextract(vm_offset_t va);
OpenPOWER on IntegriCloud