RFR: 8327647: Occasional SIGSEGV in markWord::displaced_mark_helper() for SPECjvm2008 sunflow [v4]
Coleen Phillimore
coleenp at openjdk.org
Mon Apr 22 17:40:30 UTC 2024
On Thu, 18 Apr 2024 17:19:30 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:
>> A misplaced memory barrier causes a very intermittent crash on on some aarch64 systems. This patch adds an appropriate LoadLoad barrier after a constant pool cache field entry is loaded. Verified with tier 1-5 tests.
>
> Matias Saavedra Silva has updated the pull request incrementally with one additional commit since the last revision:
>
> Fei comments
There are two threads though:
t1: 1. write resolved fields
2. release_store get_code/put_code
3. patch bytecode to fastpath (should this be a release_store?)
but t2: 1. reads patched_bytecode
2. goes fastpath
3. loads pointer to cpCache entry for Resolved fields assuming they've been written in order
4. gets a resolved field
So the patch puts the LoadLoad membar between 2 and 3 because t2 is the thread that's loading the information. Would a LoadLoad barrier executed by t1 help?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18477#issuecomment-2070375362
More information about the hotspot-compiler-dev
mailing list