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