RFR: 8294729: [s390] Implement nmethod entry barriers [v13]
Martin Doerr
mdoerr at openjdk.org
Fri Oct 28 11:09:30 UTC 2022
On Thu, 27 Oct 2022 22:26:22 GMT, Tyler Steele <tsteele at openjdk.org> wrote:
>> src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp line 243:
>>
>>> 241: __ save_return_pc();
>>> 242: __ push_frame_abi160(nbytes_save); // Will use Z_R0 as tmp.
>>> 243: __ save_volatile_regs(Z_SP, frame::z_abi_160_size, true, true);
>>
>> Adds overhead for other usages which don't need it. May be still ok, though.
>
> Agreed. The PPC implementation I looked at has more complicated logic for determining if a frame is needed, but it relies on a PreservationLevel flag which is not present on s390. If there is another way to deduce whether a frame is required here, or if we should add that flag on s390, I am happy to make that change as well.
PPC uses fine-grained control over what needs to get preserved. I think this would be good for s390, too. Be aware that changing this requires modification of the whole GC interface and all GCs. I'd split the work into 2 JBS issues and PRs. Maybe use one for nmethod entry barriers only and one for c2i entry barriers with modified GC interface?
I still believe that c2i entry barriers are currently not needed for s390 to work correctly and are hence less urgent. They are needed for concurrent class unloading which only comes with ZGC and ShenandoahGC which are unavailable on s390.
-------------
PR: https://git.openjdk.org/jdk/pull/10558
More information about the hotspot-dev
mailing list