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 shenandoah-dev mailing list