RFR: 8327647: Occasional SIGSEGV in markWord::displaced_mark_helper() for SPECjvm2008 sunflow [v4]
Andrew Haley
aph at openjdk.org
Sat Apr 20 12:39:29 UTC 2024
On Fri, 19 Apr 2024 22:56:29 GMT, Dean Long <dlong at openjdk.org> wrote:
> If I understand correctly, the order of writes must be:
>
> 1. ResolvedFieldEntry fields, except _get_code and _put_code
So, release fence here?
> 2. _get_code, _put_code
and another here
> 3. patch_bytecode(fast_bytecode)
>
>
> so the order of reads must be reversed. That's why there are load-acquires when reading _get_code and _put_code. After [3] is done, after dispatching to fast_bytecode, we need to do a LoadLoad between the already read fast bytecode [3] and the "cache" fields [1]. The LoadLoad is not for the load of the next bytecode that will be done in dispatch_next().
So, I guess the loadload fence being inserted here is the one we need between [2] and [3].
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18477#issuecomment-2067660791
More information about the hotspot-compiler-dev
mailing list