kernel - Expand the x86_64 KVA to 8G
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 6 Feb 2010 17:43:06 +0000 (09:43 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 6 Feb 2010 17:43:06 +0000 (09:43 -0800)
commit791c65511b52d3ae012467be078e0da2059c4e5b
tree8e11200eb2cddab3fdd9776fcc7c599fa6b9401d
parent7c457ac840f7cd3cd8afc0a436867568241038c2
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.
sys/platform/pc32/i386/pmap.c
sys/platform/pc64/include/pmap.h
sys/platform/pc64/include/vmparam.h
sys/platform/pc64/x86_64/machdep.c
sys/platform/pc64/x86_64/minidump_machdep.c
sys/platform/pc64/x86_64/mp_machdep.c
sys/platform/pc64/x86_64/pmap.c
sys/platform/vkernel/platform/init.c
sys/vm/pmap.h
sys/vm/vm_kern.c
sys/vm/vm_map.c