mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-05 07:58:40 +00:00
8064815: Zero+PPC64: Stack overflow when running Maven
Reviewed-by: kvn, simonis
This commit is contained in:
parent
8e5771854a
commit
8a5d63f3a2
@ -30,7 +30,9 @@
|
||||
|
||||
int ZeroStack::suggest_size(Thread *thread) const {
|
||||
assert(needs_setup(), "already set up");
|
||||
return align_size_down(abi_stack_available(thread) / 2, wordSize);
|
||||
int abi_available = abi_stack_available(thread);
|
||||
assert(abi_available >= 0, "available abi stack must be >= 0");
|
||||
return align_size_down(abi_available / 2, wordSize);
|
||||
}
|
||||
|
||||
void ZeroStack::handle_overflow(TRAPS) {
|
||||
|
||||
@ -48,9 +48,11 @@ inline void ZeroStack::overflow_check(int required_words, TRAPS) {
|
||||
// to use under normal circumstances. Note that the returned
|
||||
// value can be negative.
|
||||
inline int ZeroStack::abi_stack_available(Thread *thread) const {
|
||||
int stack_used = thread->stack_base() - (address) &stack_used;
|
||||
guarantee(Thread::current() == thread, "should run in the same thread");
|
||||
int stack_used = thread->stack_base() - (address) &stack_used
|
||||
+ (StackYellowPages+StackRedPages+StackShadowPages) * os::vm_page_size();
|
||||
int stack_free = thread->stack_size() - stack_used;
|
||||
return stack_free - shadow_pages_size();
|
||||
return stack_free;
|
||||
}
|
||||
|
||||
#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user