6885308: The incorrect -XX:StackRedPages, -XX:StackShadowPages, -XX:StackYellowPages could cause VM crash

Test minimal stack sizes given (also fixed linux compilation error)

Reviewed-by: never, phh, coleenp
This commit is contained in:
Pavel Tisnovsky 2010-08-19 14:23:59 -04:00
parent ae38e974f0
commit b002fe5992
3 changed files with 28 additions and 2 deletions

View file

@ -1559,6 +1559,18 @@ bool Arguments::verify_interval(uintx val, uintx min,
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;
@ -1611,6 +1623,16 @@ bool Arguments::check_gc_consistency() {
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.
@ -1723,6 +1745,7 @@ bool Arguments::check_vm_args_consistency() {
}
status = status && check_gc_consistency();
status = status && check_stack_pages();
if (_has_alloc_profile) {
if (UseParallelGC || UseParallelOldGC) {