git: kernel - Expand page count fields to 64 bits
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Sun Dec  3 17:32:57 PST 2017
    
    
  
commit b7ea2f3f550021bfaabd8ed8d50b54c157fb55bf
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Dec 3 17:14:15 2017 -0800
    kernel - Expand page count fields to 64 bits
    
    * 32 bit page count fields limit us to 8TB of ram.  Expand to allow
      up to the DMAP limit (32TB).  Do an initial pass on various page
      count fields and change them from int's to long's or vm_pindex_t's.
    
    * Fix a 32-bit overflow in the pv_entry initialization code.
    
      pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
    		  2000 * 1046516 + pages_of_phys_memory;
    
      maxproc is 1046516 @ 512GB.  This calculation overflows its 32
      bit signed variable somewhere between 256G and 512G of ram.  This
      can lead to a zinitna() allocation in pvzone that is much too
      large.
    
    Reported-by: zrj
Summary of changes:
 sys/platform/pc64/x86_64/pmap.c        | 14 +++----
 sys/platform/vkernel64/platform/pmap.c | 23 ++++++-----
 sys/sys/vmmeter.h                      | 47 +++++++++++-----------
 sys/vm/vm_contig.c                     | 22 ++++++-----
 sys/vm/vm_meter.c                      | 66 +++++++++++++++----------------
 sys/vm/vm_page.c                       | 72 +++++++++++++++++-----------------
 sys/vm/vm_page.h                       |  4 +-
 sys/vm/vm_page2.h                      |  4 +-
 sys/vm/vm_pageout.c                    | 59 ++++++++++++++--------------
 9 files changed, 158 insertions(+), 153 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b7ea2f3f550021bfaabd8ed8d50b54c157fb55bf
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list