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??

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

Commit messages:
 - Fix non-macos builds
 - Revert "8304725: AsyncGetCallTrace can cause SIGBUS on M1"
 - Remove ThreadWXEnable guard
 - Lazy W^X state switch

Changes: https://git.openjdk.org/jdk/pull/18762/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18762&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8330171
  Stats: 325 lines in 46 files changed: 17 ins; 305 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/18762.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18762/head:pull/18762

PR: https://git.openjdk.org/jdk/pull/18762

Reply via email to