src/os/linux/vm/os_linux.cpp

changeset 2824
c303b3532d4a
parent 2822
7f3faf7159fd
child 2850
188c9a5d6a6d
     1.1 --- a/src/os/linux/vm/os_linux.cpp	Sat Apr 23 04:20:09 2011 -0700
     1.2 +++ b/src/os/linux/vm/os_linux.cpp	Tue Apr 26 11:46:34 2011 -0700
     1.3 @@ -4170,6 +4170,23 @@
     1.4          UseNUMA = false;
     1.5        }
     1.6      }
     1.7 +    // With SHM large pages we cannot uncommit a page, so there's not way
     1.8 +    // we can make the adaptive lgrp chunk resizing work. If the user specified
     1.9 +    // both UseNUMA and UseLargePages (or UseSHM) on the command line - warn and
    1.10 +    // disable adaptive resizing.
    1.11 +    if (UseNUMA && UseLargePages && UseSHM) {
    1.12 +      if (!FLAG_IS_DEFAULT(UseNUMA)) {
    1.13 +        if (FLAG_IS_DEFAULT(UseLargePages) && FLAG_IS_DEFAULT(UseSHM)) {
    1.14 +          UseLargePages = false;
    1.15 +        } else {
    1.16 +          warning("UseNUMA is not fully compatible with SHM large pages, disabling adaptive resizing");
    1.17 +          UseAdaptiveSizePolicy = false;
    1.18 +          UseAdaptiveNUMAChunkSizing = false;
    1.19 +        }
    1.20 +      } else {
    1.21 +        UseNUMA = false;
    1.22 +      }
    1.23 +    }
    1.24      if (!UseNUMA && ForceNUMA) {
    1.25        UseNUMA = true;
    1.26      }

mercurial