On Fri, 12 Apr 2024 14:40:05 GMT, Sergey Nazarkin <snaza...@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??

What about granting `WXWrite` only if the current thread is in `_thread_in_vm`?
That would be more restrictive and roughly equivalent how it currently works. 
Likely there are some places then that should be granted `WXWrite` eagerly 
because they need `WXWrite` without `_thread_in_vm`. E.g. the JIT compiler 
threads should have `WXWrite` and never `WXExec` (I assume) which should be 
checked in the signal handler.

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

PR Comment: https://git.openjdk.org/jdk/pull/18762#issuecomment-2065983074

Reply via email to