git: kernel - Expand the x86_64 KVA to 8G

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Feb 6 10:13:45 PST 2010


commit 791c65511b52d3ae012467be078e0da2059c4e5b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Feb 6 09:43:06 2010 -0800

    kernel - Expand the x86_64 KVA to 8G
    
    * Our kmem_init() was mapping out the ~6G of KVA below KERNBASE.  KERNBASE
      is at the -2G mark and unlike i386 it does not mark the beginning of KVA.
    
      Add two more globals, virtual2_start and virtual2_end, adn adjust
      kmem_init() to use that space.  This fixes kernel_map exhaustion issues
      on x86_64.  Before the change only ~600M of KVA was available after a
      fresh boot.
    
    * Populate the PDPs around both KERNBASE and at virtual2_start for
      bootstrapping purposes.
    
    * Adjust kernel_vm_end to start iteration for growkernel purposes at
      VM_MIN_KERNEL_ADDRESS and no longer use it to figure out the end
      of KVM for the minidump.
    
      In addition, adjust minidump to dump the entire kernel virtual
      address space.
    
    * Remove numerous extranious variables.
    
    * Fix a bug in vm_map_insert() where vm_map->first_free was being
      incorrect set when the map does not begin with reserved space.

Summary of changes:
 sys/platform/pc32/i386/pmap.c               |    2 +
 sys/platform/pc64/include/pmap.h            |    8 ++-
 sys/platform/pc64/include/vmparam.h         |   13 ++---
 sys/platform/pc64/x86_64/machdep.c          |    1 -
 sys/platform/pc64/x86_64/minidump_machdep.c |   15 ++++--
 sys/platform/pc64/x86_64/mp_machdep.c       |    3 -
 sys/platform/pc64/x86_64/pmap.c             |   73 ++++++++++++++++++++-------
 sys/platform/vkernel/platform/init.c        |    2 +
 sys/vm/pmap.h                               |    2 +
 sys/vm/vm_kern.c                            |   24 +++++++--
 sys/vm/vm_map.c                             |    6 ++-
 11 files changed, 105 insertions(+), 44 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/791c65511b52d3ae012467be078e0da2059c4e5b


-- 
DragonFly BSD source repository





More information about the Commits mailing list