--- old/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp 2016-12-06 10:23:49.790007000 +0100 +++ new/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp 2016-12-06 10:23:49.624998000 +0100 @@ -86,19 +86,23 @@ #define MAX_PATH (2 * K) -// Minimum stack sizes for the VM. It's easier to document a constant value -// but it's different for x86 and sparc because the page sizes are different. -#ifdef AMD64 -size_t os::Posix::_compiler_thread_min_stack_allowed = 394 * K; -size_t os::Posix::_java_thread_min_stack_allowed = 224 * K; +// Minimum usable stack sizes required to get to user code. Space for +// HotSpot guard pages is added later. +#ifdef _LP64 +size_t os::Posix::_compiler_thread_min_stack_allowed = 202 * K; +size_t os::Posix::_java_thread_min_stack_allowed = 48 * K; size_t os::Posix::_vm_internal_thread_min_stack_allowed = 224 * K; +#else +size_t os::Posix::_compiler_thread_min_stack_allowed = 32 * K; +size_t os::Posix::_java_thread_min_stack_allowed = 32 * K; +size_t os::Posix::_vm_internal_thread_min_stack_allowed = 64 * K; +#endif // _LP64 + +#ifdef AMD64 #define REG_SP REG_RSP #define REG_PC REG_RIP #define REG_FP REG_RBP #else -size_t os::Posix::_compiler_thread_min_stack_allowed = 64 * K; -size_t os::Posix::_java_thread_min_stack_allowed = 64 * K; -size_t os::Posix::_vm_internal_thread_min_stack_allowed = 64 * K; #define REG_SP UESP #define REG_PC EIP #define REG_FP EBP