--- old/src/os_cpu/linux_s390/vm/os_linux_s390.cpp 2016-11-16 16:45:38.534880000 +0100 +++ new/src/os_cpu/linux_s390/vm/os_linux_s390.cpp 2016-11-16 16:45:38.302869000 +0100 @@ -473,11 +473,11 @@ //////////////////////////////////////////////////////////////////////////////// // thread stack -// These sizes exclude OS stack guard pages, but include -// the VM guard pages. -size_t os::Posix::_compiler_thread_min_stack_allowed = 128 * K; -size_t os::Posix::_java_thread_min_stack_allowed = 128 * K; -size_t os::Posix::_vm_internal_thread_min_stack_allowed = 128 * K; +// Minimum usable stack sizes required to get to user code. Space for VM +// guard pages is added later. +size_t os::Posix::_compiler_thread_min_stack_allowed = (52 DEBUG_ONLY(+32)) * K; +size_t os::Posix::_java_thread_min_stack_allowed = (32 DEBUG_ONLY(+8)) * K; +size_t os::Posix::_vm_internal_thread_min_stack_allowed = 32 * K; // Return default stack size for thr_type. size_t os::Posix::default_stack_size(os::ThreadType thr_type) { @@ -489,7 +489,7 @@ size_t os::Linux::default_guard_size(os::ThreadType thr_type) { // Creating guard page is very expensive. Java thread has HotSpot // guard page, only enable glibc guard page for non-Java threads. - return (thr_type == java_thread ? 0 : page_size()); + return ((thr_type == java_thread || thr_type == os::compiler_thread) ? 0 : page_size()); } // Java thread: