--- old/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp 2017-12-28 18:15:47.730779000 +0100 +++ new/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp 2017-12-28 18:15:47.511770000 +0100 @@ -47,6 +47,7 @@ #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" @@ -374,9 +375,12 @@ goto run_stub; } - else if (sig == SIGSEGV && os::is_poll_address(addr)) { + 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 " (SIGSEGV)", pc); + 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;