RFR: JDK-8316392: compiler/interpreter/TestVerifyStackAfterDeopt.java failed with SIGBUS in PcDescContainer::find_pc_desc_internal [v2]
Tobias Holenstein
tholenstein at openjdk.org
Mon Nov 13 09:02:11 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.
Tobias Holenstein has updated the pull request incrementally with one additional commit since the last revision:
remove compiler/interpreter/TestVerifyStackAfterDeopt.java from test/hotspot/jtreg/ProblemList-Xcomp.txt
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/16308/files
- new: https://git.openjdk.org/jdk/pull/16308/files/31ee8bb0..aae896db
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=16308&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=16308&range=00-01
Stats: 1 line in 1 file changed: 0 ins; 1 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