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