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.

>> 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?




More information about the hotspot-gc-dev mailing list