RFR: 8266742: Check W^X state on possible safepoint

David Holmes dholmes at openjdk.java.net
Mon May 10 05:32:42 UTC 2021


On Fri, 7 May 2021 15:37:12 GMT, Anton Kozlov <akozlov at openjdk.org> wrote:

> Hi,
> 
> Please review a check for W^X mode at safepoint. As described in the bug, this explicit check aims to catch the wrong W^X mode that may lead to a crash (such crashes are rather intermittent).
> 
> This check helped to verify the fix for https://bugs.openjdk.java.net/browse/JDK-8265292 and should help to discover similar issues. It is disabled by default to avoid unexpected failures in the regular use, but eventually it should be turned on unconditionally.
> 
> I still owe a complete W^X approach description. Hope this patch does not depend much on that.

Hi Anton,

A few comments.

Thanks,
David

src/hotspot/os/bsd/globals_bsd.hpp line 39:

> 37:                          constraint)                                    \
> 38:                                                                         \
> 39:   AARCH64_ONLY(develop(bool, WXCheckAtSafepoint, false,                 \

Why not enable always as this is a develop build? Do we even need to manage this on a flag?

Also not really "safepoint" as the check also applies to handshakes.

src/hotspot/share/runtime/thread.hpp line 688:

> 686:   WXMode enable_wx(WXMode new_state);
> 687: 
> 688:   void check_wx(WXMode expected) {

assert_wx_state ?

-------------

PR: https://git.openjdk.java.net/jdk/pull/3920


More information about the hotspot-runtime-dev mailing list