git: kernel - pmap (i386) - Reduce kmem use for foreign pmap mapping

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Mar 3 18:00:37 PST 2010


commit 9388fcaad1973ace4809da7b52f7f0e56ed0a69e
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Mar 3 17:53:37 2010 -0800

    kernel - pmap (i386) - Reduce kmem use for foreign pmap mapping
    
    * We've been having problems running out of KVA on i386 systems due to
      numerous reasons.  KVA use by the kernel is just too tight.
    
    * Reserve space for foreign pmap page table mappings on a cpu-by-cpu basis
      instead of for SMP_MAXCPU.  This reduces KVM use from 68MB to (ncpu*4MB).
      Use the APT entry for cpu0 and use kmem_alloc_nofault() for the APs.
    
      This frees up 52MB of KVA which doesn't sound like a lot but actually
      is.
    
    * Add an alignment argument to kmem_alloc_nofault() and vm_map_find().
    
    * vm_map_findspace() already had an alignment argument, but adjust the
      value passed to be at least PAGE_SIZE (this has no operational effect
      but is more correct).

Summary of changes:
 sys/bus/pci/i386/pci_cfgreg.c           |    3 ++-
 sys/bus/pci/x86_64/pci_cfgreg.c         |    3 ++-
 sys/emulation/linux/i386/imgact_linux.c |    9 +++++----
 sys/emulation/linux/linux_misc.c        |    8 ++++----
 sys/kern/imgact_gzip.c                  |    5 ++---
 sys/kern/init_main.c                    |    6 +++---
 sys/kern/kern_msfbuf.c                  |    3 ++-
 sys/kern/kern_sfbuf.c                   |    3 ++-
 sys/kern/link_elf.c                     |    6 +++---
 sys/kern/link_elf_obj.c                 |    3 ++-
 sys/kern/sys_pipe.c                     |    6 +++---
 sys/kern/sys_process.c                  |   12 ++++++------
 sys/kern/sysv_shm.c                     |    3 ++-
 sys/platform/pc32/i386/mp_machdep.c     |   11 ++++++++---
 sys/platform/pc32/i386/pmap.c           |    8 ++++----
 sys/platform/pc32/include/pmap.h        |   24 ++++++++----------------
 sys/platform/pc64/x86_64/pmap.c         |    4 ++--
 sys/platform/vkernel/platform/pmap.c    |    2 +-
 sys/vm/vm_contig.c                      |    2 +-
 sys/vm/vm_extern.h                      |    2 +-
 sys/vm/vm_kern.c                        |   23 ++++++++++-------------
 sys/vm/vm_map.c                         |    6 +++---
 sys/vm/vm_map.h                         |    7 +++----
 sys/vm/vm_mmap.c                        |   10 ++++++----
 sys/vm/vm_unix.c                        |    7 +++----
 25 files changed, 88 insertions(+), 88 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9388fcaad1973ace4809da7b52f7f0e56ed0a69e


-- 
DragonFly BSD source repository





More information about the Commits mailing list