Hi Roberto,

On 02/02/2024 13:18, Roberto Castaneda Lozano wrote:
I have written (together with Erik Ă–sterlund) a draft JEP for
simplifying C2's handling of G1 barriers, see
https://bugs.openjdk.org/browse/JDK-8322295. This is a heads-up that
the implementation of this JEP requires platform-specific support
from all OpenJDK ports. While interpreter G1 barrier implementations
are available for all ports and can be largely reused, the JEP
additionally requires 1) defining G1-specific ADL instructions and 2)
implementing platform-specific logic to support runtime calls from
the barrier code. For ports that already support ZGC, the effort
should be smaller, as the logic for 2) can be shared between ZGC and
G1.

To give a rough estimation of the required effort, the x86-64 changes
in our prototype involve approximately 900 line insertions and 300
line deletions over 9 files, among which approximately 300 deleted
and inserted lines correspond to logic factored out from ZGC.

I looked at the proposal and was interested in the approach, not least because ZGC appears to have traversed the path that this JEP recommends G1 to follow.

Have you considered whether this same approach might be taken with the Shenandoah GC? Alternatively, can declare any basic assumptions regarding how G1 operates that are needed to enable this change which might therefore need be met by Shenandoah?

Of course, access to the prototype code might help answer those questions (at least it would help someone better versed in Shenandoah than me) but a high-level summary of what in the design of G1 and ZGC makes this approach work or, conversely, might make it fail would, if available, be a great help.

regards,


Andrew Dinn
-----------

Reply via email to