RFR: 8253795: Implementation of JEP 391: macOS/AArch64 Port [v2]
akozlov at openjdk.java.net
Tue Jan 26 11:33:45 UTC 2021
On Mon, 25 Jan 2021 14:40:42 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> src/hotspot/share/runtime/thread.hpp line 915:
>>> 913: verify_wx_state(WXExec);
>>> 914: }
>>> 915: };
>> Rather than add all this to thread.hpp, can you make a wxVerifier.hpp and just add the class instance as a field in thread.hpp?
> This could be a follow-up RFE.
I assume a WXVerifier class that tracks W^X mode in debug mode and does nothing in release mode. I've considered to do this, it's relates to small inefficiencies, while this patch brings zero overhead (in release) for a platform that does not need W^X.
* We don't need thread instance in release to call `os::current_thread_enable_wx`. Having WXVerifier a part of the Thread will require calling `Thread::current()` first and we could only hope for compiler to optimize this out, not sure if it will happen at all. In some contexts the Thread instance is available, in some it's not.
* An instance of the empty class (as WXVerifier will be in the release) will occupy non-zero space in the Thread instance.
If such costs are negligible, I can do as suggested.
More information about the core-libs-dev