RFR 8233500: Shenandoah: Shenandoah load barrier should save registers before calling keep alive barrier on x86
Zhengyu Gu
zgu at redhat.com
Mon Nov 4 18:34:45 UTC 2019
On 11/4/19 12:07 PM, Aleksey Shipilev wrote:
> On 11/4/19 5:55 PM, Zhengyu Gu wrote:
>> This bug was found and fixed during concurrent class unloading work in shenandoah/jdk. However, I
>> don't think it is concurrent class unloading specific issue, and could result hard to find problem
>> in jdk/jdk.
>>
>> BTW: AArch64 already does right thing.
>
> Where? Please be specific when saying this (i.e. point to code), for archival reasons.
http://hg.openjdk.java.net/jdk/jdk/file/33f9271b3167/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp#l383
>
>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8233500
>> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8233500/webrev.00/
>
> I don't understand this.
>
> SATB handling is similar to G1 is doing, where's the similar code in G1? The patch adds save/restore
> at in SBSA::load_at, but there is a similar block in SBSA::store_at, why it is not needed there?
Because we do self-fixing in LRB and have to reshuffle registers.
Not sure about SBSA::store_at(), because it still similar to G1 code?
Thanks,
-Zhengyu
>
More information about the hotspot-gc-dev
mailing list