hotspot/src/os/linux/vm/os_linux.cpp
changeset 9341 347fa5cdbd39
parent 9339 385a3a71df50
child 9419 f0360dfe734d
--- a/hotspot/src/os/linux/vm/os_linux.cpp	Sat Apr 23 04:20:09 2011 -0700
+++ b/hotspot/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;
     }