--- old/src/hotspot/cpu/s390/sharedRuntime_s390.cpp 2018-09-26 10:00:58.920338098 -0400 +++ new/src/hotspot/cpu/s390/sharedRuntime_s390.cpp 2018-09-26 10:00:57.368247778 -0400 @@ -2155,18 +2155,17 @@ save_native_result(masm, ret_type, workspace_slot_offset); // Make Z_R2 available as work reg. - if (os::is_MP()) { - if (UseMembar) { - // Force this write out before the read below. - __ z_fence(); - } else { - // Write serialization page so VM thread can do a pseudo remote membar. - // We use the current thread pointer to calculate a thread specific - // offset to write to within the page. This minimizes bus traffic - // due to cache line collision. - __ serialize_memory(Z_thread, Z_R1, Z_R2); - } + if (UseMembar) { + // Force this write out before the read below. + __ z_fence(); + } else { + // Write serialization page so VM thread can do a pseudo remote membar. + // We use the current thread pointer to calculate a thread specific + // offset to write to within the page. This minimizes bus traffic + // due to cache line collision. + __ serialize_memory(Z_thread, Z_R1, Z_R2); } + __ safepoint_poll(sync, Z_R1); __ load_and_test_int(Z_R0, Address(Z_thread, JavaThread::suspend_flags_offset()));