Mercurial > hg > truffle
diff src/os/linux/vm/os_linux.cpp @ 3292:c303b3532d4a
7037939: NUMA: Disable adaptive resizing if SHM large pages are used
Summary: Make the NUMA allocator behave properly with SHM and ISM large pages.
Reviewed-by: ysr
author | iveresov |
---|---|
date | Tue, 26 Apr 2011 11:46:34 -0700 |
parents | 7f3faf7159fd |
children | 188c9a5d6a6d |
line wrap: on
line diff
--- a/src/os/linux/vm/os_linux.cpp Sat Apr 23 04:20:09 2011 -0700 +++ b/src/os/linux/vm/os_linux.cpp Tue Apr 26 11:46:34 2011 -0700 @@ -4170,6 +4170,23 @@ UseNUMA = false; } } + // With SHM large pages we cannot uncommit a page, so there's not way + // we can make the adaptive lgrp chunk resizing work. If the user specified + // both UseNUMA and UseLargePages (or UseSHM) on the command line - warn and + // disable adaptive resizing. + if (UseNUMA && UseLargePages && UseSHM) { + if (!FLAG_IS_DEFAULT(UseNUMA)) { + if (FLAG_IS_DEFAULT(UseLargePages) && FLAG_IS_DEFAULT(UseSHM)) { + UseLargePages = false; + } else { + warning("UseNUMA is not fully compatible with SHM large pages, disabling adaptive resizing"); + UseAdaptiveSizePolicy = false; + UseAdaptiveNUMAChunkSizing = false; + } + } else { + UseNUMA = false; + } + } if (!UseNUMA && ForceNUMA) { UseNUMA = true; }