git: kernel - Rearrange pmap_growkernel() and fix up x86_64's pm

看板DFBSD_commit作者時間15年前 (2010/09/27 03:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit a8cf2878049f94b5d02b9bf0fc7c332b2fd95663 Author: Matthew Dillon <dillon@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
文章代碼(AID): #1CdvXo77 (DFBSD_commit)