< prev index next >
src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
Print this page
rev 12305 : 8169373: Work around linux NPTL stack guard error.
Summary: Also streamline OS guard page handling on linuxs390, linuxppc, aixppc.
*** 545,555 ****
size_t s = (thr_type == os::compiler_thread ? 4 * M : 1024 * K);
return s;
}
size_t os::Linux::default_guard_size(os::ThreadType thr_type) {
! return 2 * page_size();
}
// Java thread:
//
// Low memory addresses
--- 545,557 ----
size_t s = (thr_type == os::compiler_thread ? 4 * M : 1024 * K);
return s;
}
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());
}
// Java thread:
//
// Low memory addresses
*** 605,614 ****
--- 607,622 ----
if (pthread_attr_getstack(&attr, (void **)bottom, size) != 0) {
fatal("Can not locate current stack attributes!");
}
+ // Work around NPTL stack guard error.
+ size_t guard_size = 0;
+ pthread_attr_getguardsize(&attr, &guard_size);
+ *bottom += guard_size;
+ *size -= guard_size;
+
pthread_attr_destroy(&attr);
}
assert(os::current_stack_pointer() >= *bottom &&
os::current_stack_pointer() < *bottom + *size, "just checking");
< prev index next >