git: kernel - Rearrange pmap_growkernel() and fix up x86_64's pmap_growkernel()
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Sep 26 11:52:49 PDT 2010
commit a8cf2878049f94b5d02b9bf0fc7c332b2fd95663
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Sep 26 11:46:20 2010 -0700
kernel - Rearrange pmap_growkernel() and fix up x86_64's pmap_growkernel()
* Rearrange pmap_growkernel() to pass an address range instead of just an
end address.
* vm_map() no longer retries after calling pmap_growkernel(), the function
either succeeds or panics.
* x86_64 - kldloading modules after system boot no longer populates 128GB
worth of page tables (which eats ~256MB of ram) in order to push
kernel_vm_end past KERNBASE.
Instead, any kldloads into the space beyond KERNBASE, which is required
to be able to link them into the kernel due to 32-bit PC-relative
addressing, will populate just the required page tables and will not
bump up kernel_vm_end.
* Fixes a panic which can occur well after boot when kldload'ing the first
module, if 256MB worth of free pages is not instantly available.
* Saves us 256M of ram on x86_64.
Summary of changes:
sys/platform/pc32/i386/pmap.c | 3 +-
sys/platform/pc64/x86_64/pmap.c | 83 ++++++++++++++++++++++++--------
sys/platform/vkernel/platform/pmap.c | 6 ++-
sys/platform/vkernel64/platform/pmap.c | 28 +++++++----
sys/sys/param.h | 1 +
sys/vm/pmap.h | 2 +-
sys/vm/vm_map.c | 22 ++++++--
7 files changed, 106 insertions(+), 39 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a8cf2878049f94b5d02b9bf0fc7c332b2fd95663
--
DragonFly BSD source repository
More information about the Commits
mailing list