RFR: 8330171: Lazy W^X swtich implementation
Vladimir Kempik
vkempik at openjdk.org
Fri Apr 12 14:53:44 UTC 2024
On Fri, 12 Apr 2024 14:40:05 GMT, Sergey Nazarkin <snazarki at openjdk.org> wrote:
> An alternative for preemptively switching the W^X thread mode on macOS with an AArch64 CPU. This implementation triggers the switch in response to the SIGBUS signal if the *si_addr* belongs to the CodeCache area. With this approach, it is now feasible to eliminate all WX guards and avoid potentially costly operations. However, no significant improvement or degradation in performance has been observed. Additionally, considering the issue with AsyncGetCallTrace, the patched JVM has been successfully operated with [asgct_bottom](https://github.com/parttimenerd/asgct_bottom) and [async-profiler](https://github.com/async-profiler/async-profiler).
>
> Additional testing:
> - [x] MacOS AArch64 server fastdebug *gtets*
> - [ ] MacOS AArch64 server fastdebug *jtreg:hotspot:tier4*
> - [ ] Benchmarking
>
> @apangin and @parttimenerd could you please check the patch on your scenarios??
Hello Sergey.
W^X mode was initially forced by Apple to prevent writing to executable memory, as a security feature.
This change just eliminates this security feature at all, doesn't it ?
Basically: "want to write to Executable memory ? ok, here you go"
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18762#issuecomment-2051910824
More information about the shenandoah-dev
mailing list