Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jul 2010 20:33:50 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/amd64/include vmparam.h src/sys/arm/include vmparam.h src/sys/i386/include vmparam.h src/sys/ia64/include vmparam.h src/sys/mips/include vmparam.h src/sys/powerpc/include vmparam.h src/sys/sparc64/include vmparam.h src/sys/sun4v/include ...
Message-ID:  <201007272035.o6RKZ0ch008899@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2010-07-27 20:33:50 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/include    vmparam.h 
    sys/arm/include      vmparam.h 
    sys/i386/include     vmparam.h 
    sys/ia64/include     vmparam.h 
    sys/mips/include     vmparam.h 
    sys/powerpc/include  vmparam.h 
    sys/sparc64/include  vmparam.h 
    sys/sun4v/include    vmparam.h 
    sys/sys              pcpu.h 
    sys/vm               vm_phys.c vm_phys.h 
  Log:
  SVN rev 210550 on 2010-07-27 20:33:50Z by jhb
  
  Very rough first cut at NUMA support for the physical page allocator.  For
  now it uses a very dumb first-touch allocation policy.  This will change in
  the future.
  - Each architecture indicates the maximum number of supported memory domains
    via a new VM_NDOMAIN parameter in <machine/vmparam.h>.
  - Each cpu now has a PCPU_GET(domain) member to indicate the memory domain
    a CPU belongs to.  Domain values are dense and numbered from 0.
  - When a platform supports multiple domains, the default freelist
    (VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain.
    The MD code is required to populate an array of mem_affinity structures.
    Each entry in the array defines a range of memory (start and end) and a
    domain for the range.  Multiple entries may be present for a single
    domain.  The list is terminated by an entry where all fields are zero.
    This array of structures is used to split up phys_avail[] regions that
    fall in VM_FREELIST_DEFAULT into per-domain freelists.
  - Each memory domain has a separate lookup-array of freelists that is
    used when fulfulling a physical memory allocation.  Right now the
    per-domain freelists are listed in a round-robin order for each domain.
    In the future a table such as the ACPI SLIT table may be used to order
    the per-domain lookup lists based on the penalty for each memory domain
    relative to a specific domain.  The lookup lists may be examined via a
    new vm.phys.lookup_lists sysctl.
  - The first-touch policy is implemented by using PCPU_GET(domain) to
    pick a lookup list when allocating memory.
  
  Reviewed by:    alc
  
  Revision  Changes    Path
  1.61      +7 -0      src/sys/amd64/include/vmparam.h
  1.15      +7 -0      src/sys/arm/include/vmparam.h
  1.50      +7 -0      src/sys/i386/include/vmparam.h
  1.22      +7 -0      src/sys/ia64/include/vmparam.h
  1.8       +7 -0      src/sys/mips/include/vmparam.h
  1.19      +7 -0      src/sys/powerpc/include/vmparam.h
  1.22      +7 -0      src/sys/sparc64/include/vmparam.h
  1.8       +7 -0      src/sys/sun4v/include/vmparam.h
  1.45      +1 -0      src/sys/sys/pcpu.h
  1.15      +140 -7    src/sys/vm/vm_phys.c
  1.8       +9 -0      src/sys/vm/vm_phys.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007272035.o6RKZ0ch008899>