diff src/share/vm/runtime/arguments.cpp @ 1764:14197af1010e

Merge
author never
date Fri, 27 Aug 2010 17:35:08 -0700
parents d6f45b55c972 ebfb7c68865e
children 40d7b43b6fe0 d5d065957597
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp	Fri Aug 27 17:33:49 2010 -0700
+++ b/src/share/vm/runtime/arguments.cpp	Fri Aug 27 17:35:08 2010 -0700
@@ -1564,6 +1564,18 @@
   return false;
 }
 
+bool Arguments::verify_min_value(intx val, intx min, const char* name) {
+  // Returns true if given value is greater than specified min threshold
+  // false, otherwise.
+  if (val >= min ) {
+      return true;
+  }
+  jio_fprintf(defaultStream::error_stream(),
+              "%s of " INTX_FORMAT " is invalid; must be greater than " INTX_FORMAT "\n",
+              name, val, min);
+  return false;
+}
+
 bool Arguments::verify_percentage(uintx value, const char* name) {
   if (value <= 100) {
     return true;
@@ -1616,6 +1628,16 @@
   return status;
 }
 
+// Check stack pages settings
+bool Arguments::check_stack_pages()
+{
+  bool status = true;
+  status = status && verify_min_value(StackYellowPages, 1, "StackYellowPages");
+  status = status && verify_min_value(StackRedPages, 1, "StackRedPages");
+  status = status && verify_min_value(StackShadowPages, 1, "StackShadowPages");
+  return status;
+}
+
 // Check the consistency of vm_init_args
 bool Arguments::check_vm_args_consistency() {
   // Method for adding checks for flag consistency.
@@ -1728,6 +1750,7 @@
   }
 
   status = status && check_gc_consistency();
+  status = status && check_stack_pages();
 
   if (_has_alloc_profile) {
     if (UseParallelGC || UseParallelOldGC) {