< prev index next >

src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp

Print this page
rev 48405 : 8194258: PPC64 safepoint mechanism: Fix initialization on AIX and support SIGTRAP
Summary: Use mmap on AIX to allocate protected page. Use trap instructions for polling if UseSIGTRAP is enabled.
Reviewed-by:

*** 45,54 **** --- 45,55 ---- #include "runtime/interfaceSupport.hpp" #include "runtime/java.hpp" #include "runtime/javaCalls.hpp" #include "runtime/mutexLocker.hpp" #include "runtime/osThread.hpp" + #include "runtime/safepointMechanism.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/stubRoutines.hpp" #include "runtime/thread.inline.hpp" #include "runtime/timer.hpp" #include "utilities/events.hpp"
*** 372,384 **** } stub = SharedRuntime::get_handle_wrong_method_stub(); goto run_stub; } ! else if (sig == SIGSEGV && os::is_poll_address(addr)) { if (TraceTraps) { ! tty->print_cr("trap: safepoint_poll at " INTPTR_FORMAT " (SIGSEGV)", pc); } stub = SharedRuntime::get_poll_stub(pc); goto run_stub; } --- 373,388 ---- } stub = SharedRuntime::get_handle_wrong_method_stub(); goto run_stub; } ! else if ((SafepointMechanism::uses_thread_local_poll() && USE_POLL_BIT_ONLY) ! ? (sig == SIGTRAP && ((NativeInstruction*)pc)->is_safepoint_poll()) ! : (sig == SIGSEGV && os::is_poll_address(addr))) { if (TraceTraps) { ! tty->print_cr("trap: safepoint_poll at " INTPTR_FORMAT " (%s)", p2i(pc), ! (SafepointMechanism::uses_thread_local_poll() && USE_POLL_BIT_ONLY) ? "SIGTRAP" : "SIGSEGV"); } stub = SharedRuntime::get_poll_stub(pc); goto run_stub; }
< prev index next >