RFR: JDK-8316392: compiler/interpreter/TestVerifyStackAfterDeopt.java failed with SIGBUS in PcDescContainer::find_pc_desc_internal
Tobias Holenstein
tholenstein at openjdk.org
Mon Nov 13 08:10:10 UTC 2023
In `PcDescContainer::find_pc_desc_internal` we call `_pc_desc_cache.add_pc_desc(upper)`. `PcDescCache::add_pc_desc` writes to the PcDescCache which requires to have the `WXWrite` lock on `MACOS_AARCH64`. Since the lock is now directly in `PcDescCache::add_pc_desc` we can remove it from `nmethod::decode2`, which calls can write to a PcDescCache.
(I'm working on a more complete fix for WXWrite to hopefully finally end this whack-a-mole)
Testing passed.
### Side note about WXWrite
On Apple Silicon the Writer/Execute lock is a new Hardened Runtime capability, see:
https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon
It prevents memory regions to be writable and executable at the same time. Therefore, we need to acquire WXWrite when we want to write to the code cache.
-------------
Commit messages:
- simple fix
- Revert "v1"
- v2
- v1
Changes: https://git.openjdk.org/jdk/pull/16308/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16308&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8316392
Stats: 4 lines in 1 file changed: 1 ins; 3 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/16308.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16308/head:pull/16308
PR: https://git.openjdk.org/jdk/pull/16308
More information about the hotspot-compiler-dev
mailing list