[aarch64-port-dev ] RFR: JDK-8214527 AArch64: ZGC for Aarch64
Erik Österlund
erik.osterlund at oracle.com
Fri May 17 15:42:18 UTC 2019
Hi,
I still do believe it's better to let the GC override both the barriers
and the accesses. In fact this is the way we consistently deal with all
access calls, except arraycopy: the GC sprinkles barriers as they wish
and calls the basic access in the appropriate places.
By doing this for arraycopy as well, the structure will be more clear,
and it will be more flexible for the GC. Not just in theory, but in a
way that is actually useful in reality as well. Rickard has for example
played around with materializing wide bad masks, and bulk applying the
load barrier in the copying loop, which showed great benefit. But it
fell short exactly because we did not have the right interface in place
to allow that.
Thanks,
/Erik
On 2019-05-17 17:05, Roman Kennke wrote:
> That's actually going in the same direction of what I already proposed:
>
> https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2019-May/025693.html
>
> We may want to pick up that discussion. Last thing I heard was that Erik
> suggested to broaden the proposed API changes to let the GC own the
> whole arraycopy stub generation. I.e. instead of:
>
> GC-interface-prologue
> actual arraycopy (without barriers)
> GC-interface-epilogue
>
> make one call to:
>
> GC-interface-arraycopy
>
> and let that generate prologue, copy and epilogue, or something totally
> different.
>
> The variant that I proposed was to keep the current structure, but allow
> the prologue to skip the body:
>
> GC-interface-prologue (possibly jump to exit)
> actual arraycopy (without barriers)
> GC-interface-epilogue
> exit: ...
>
> I didn't have time to follow-up on that yet, but I definitely want to.
>
> WDYT?
>
> Roman
>
>> Thanks for looking Aleksey. I'll generate a separate patch.
>>
>> Are you happy that I deliberately left arraycopy_epilogue as it was?
>>
>> On Fri, 17 May 2019 at 15:41, Aleksey Shipilev <shade at redhat.com> wrote:
>>> On 5/17/19 4:28 PM, Stuart Monteith wrote:
>>>> The patchset is:
>>>> http://cr.openjdk.java.net/~smonteith/8214527/webrev.0/
>>> I think that the extension of arraycopy_prologue interface is better to be handled and tested
>>> separately, to avoid surprises. GC interface should give us clean specific-GC-only patches for
>>> specific-GC features.
>>>
>>> -Aleksey
>>>
>>>
More information about the aarch64-port-dev
mailing list