RFR: 8361376: Regressions 1-6% in several Renaissance in 26-b4 only MacOSX aarch64 [v2]

Martin Doerr mdoerr at openjdk.org
Fri Aug 1 18:36:56 UTC 2025


On Thu, 24 Jul 2025 18:51:22 GMT, Dean Long <dlong at openjdk.org> wrote:

>> This PR removes the recently added lock around set_guard_value, using instead Atomic::cmpxchg to atomically update bit-fields of the guard value.  Further, it takes a fast-path that uses the previous direct store when at a safepoint.  Combined, these changes should get us back to almost where we were before in terms of overhead.  If necessary, we could go even further and allow make_not_entrant() to perform a direct byte store, leaving 24 bits for the guard value.
>
> Dean Long has updated the pull request incrementally with one additional commit since the last revision:
> 
>   remove NMethodEntryBarrier_lock

Thanks for implementing it for PPC64! The instruction sequence needs to be modified (see below).
I'd like to have https://github.com/TheRealMDoerr/jdk/commit/522b1ef2e75509d91ac18a1acd27275fc0305e8e, too. Should I file a separate RFE for that?

src/hotspot/cpu/ppc/gc/shared/barrierSetAssembler_ppc.cpp line 195:

> 193:   // This is a compound instruction. Patching support is provided by NativeMovRegMem.
> 194:   // Actual patching is done in (platform-specific part of) BarrierSetNMethod.
> 195:   __ align(8); // align for atomic update

We can't do this within this fixed size instruction sequence. But, it can be fixed like this: https://github.com/TheRealMDoerr/jdk/commit/a06b34468f5cb063892f92b66d058a8f444f05a1

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

Changes requested by mdoerr (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/26399#pullrequestreview-3080187466
PR Review Comment: https://git.openjdk.org/jdk/pull/26399#discussion_r2248603769


More information about the hotspot-dev mailing list