RFR: 8370947: Mitigate Neoverse-N1 erratum 1542419 negative impact on GCs and JIT performance [v28]
Evgeny Astigeevich
eastigeevich at openjdk.org
Thu Feb 26 18:21:07 UTC 2026
On Thu, 19 Feb 2026 16:13:56 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Evgeny Astigeevich has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Do fullGC when multiple threads execute test methods
>
> src/hotspot/share/code/relocInfo.cpp line 621:
>
>> 619:
>> 620:
>> 621: bool metadata_Relocation::fix_metadata_relocation() {
>
> I understand we return the status here, so that we avoid invalidation when there is no real patching work was done. Granted, it likely matches the behavior we have. But I wonder how much this buys us? If we are doing the deferred invalidation in a very broad scope, it stands to reason we would _almost definitely_ have to invalidate, and all this tracking would _nearly always_ give us the same answer, "Do invalidate"?
>
> IOW, this might be an unnecessary complication of the interface.
>
> _Dropping_ this change would also be more robust, in cases something somewhere _forgets_ to announce the code cache was changed? If we don't trust the downstream code about this and just summarily invalidate, it feels safer.
@shipilev
> _Dropping_ this change would also be more robust, in cases something somewhere _forgets_ to announce the code cache was changed? If we don't trust the downstream code about this and just summarily invalidate, it feels safer.
I have added `metadata_Relocation::is_modifying_code` which returns `false` for all platforms except ARM32.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28328#discussion_r2860609365
More information about the shenandoah-dev
mailing list