RFR: 8370947: Mitigate Neoverse-N1 erratum 1542419 negative impact on GenZGC performance [v3]

Evgeny Astigeevich eastigeevich at openjdk.org
Mon Nov 24 17:49:27 UTC 2025


On Thu, 20 Nov 2025 16:30:23 GMT, Evgeny Astigeevich <eastigeevich at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/icache_aarch64.hpp line 63:
>> 
>>> 61:     // the performance impact due to this workaround."
>>> 62:     //
>>> 63:     // As the address for icache invalidation is not relevant, we use the nmethod's code start address.
>> 
>>> As the address for icache invalidation is not relevant
>> 
>> Is this only because of the Neoverse-N1 workaround?
>> 
>> _If that is the case we could reach this point if `NeoverseN1Errata1542419` is either set by the user or mislabeled on some CPU without this workaround._
>
>> Is this only because of the Neoverse-N1 workaround?
> 
> Yes, it is.
> 
>> If that is the case we could reach this point if NeoverseN1Errata1542419 is either set by the user or mislabeled on some CPU without this workaround.
> 
> We only set NeoverseN1Errata1542419 to true if CPU is Neoverse N1 with the errata and it is not set by an user. We rely on Linux kernel cpuinfo correctly providing us information about Neoverse N1 revision. I think it's worth to check explicitly all affected revisions. This will mitigate Linux kernels not correctly setting revisions.
> We can issue a warning if an user sets it to true and CPU is not Neoverse N1 with the errata.

I added explicit checks of Neoverse N1 revisions affected by the errata. Also a warning will be issued if NeoverseN1Errata1542419 is set for CPU not having the errata. I don't exit VM because an user can run some experiments using this option.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28328#discussion_r2557189615


More information about the hotspot-dev mailing list