Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:GA
java-9-openjdk
ppc_stack_overflow_fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ppc_stack_overflow_fix.patch of Package java-9-openjdk
--- jdk9/hotspot/src/cpu/zero/vm/stack_zero.hpp 2016-12-27 22:00:30.000000000 +0100 +++ jdk9/hotspot/src/cpu/zero/vm/stack_zero.hpp 2017-01-09 08:35:53.221098668 +0100 @@ -96,7 +96,7 @@ int shadow_pages_size() const { return _shadow_pages_size; } - int abi_stack_available(Thread *thread) const; + ssize_t abi_stack_available(Thread *thread) const; public: void overflow_check(int required_words, TRAPS); --- jdk9/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp 2016-12-27 22:00:30.000000000 +0100 +++ jdk9/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp 2017-01-09 08:35:53.221098668 +0100 @@ -47,11 +47,11 @@ // This method returns the amount of ABI stack available for us // to use under normal circumstances. Note that the returned // value can be negative. -inline int ZeroStack::abi_stack_available(Thread *thread) const { +inline ssize_t ZeroStack::abi_stack_available(Thread *thread) const { guarantee(Thread::current() == thread, "should run in the same thread"); - int stack_used = thread->stack_base() - (address) &stack_used + ssize_t stack_used = thread->stack_base() - (address) &stack_used + (JavaThread::stack_guard_zone_size() + JavaThread::stack_shadow_zone_size()); - int stack_free = thread->stack_size() - stack_used; + ssize_t stack_free = thread->stack_size() - stack_used; return stack_free; } --- jdk9/hotspot/src/os/posix/vm/os_posix.cpp 2016-12-27 22:00:30.000000000 +0100 +++ jdk9/hotspot/src/os/posix/vm/os_posix.cpp 2017-01-09 08:35:53.221098668 +0100 @@ -1121,6 +1121,13 @@ JavaThread::stack_shadow_zone_size(); _java_thread_min_stack_allowed = align_size_up(_java_thread_min_stack_allowed, vm_page_size()); +#ifdef ZERO + // If this is Zero, allow at the very minimum one page each for the + // Zero stack and the native stack. This won't make any difference + // for 4k pages, but is significant for large pages. + _java_thread_min_stack_allowed = MAX2(_java_thread_min_stack_allowed, + (size_t)align_size_up((size_t)(JavaThread::stack_guard_zone_size()+JavaThread::stack_shadow_zone_size()+2) * vm_page_size(), vm_page_size())); +#endif size_t stack_size_in_bytes = ThreadStackSize * K; if (stack_size_in_bytes != 0 &&
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor