RFR: C1 stores constants without read barriers

Aleksey Shipilev shade at redhat.com
Fri Jun 30 11:06:54 UTC 2017


I now have the test that fails in C1 with embedded oops! And it is fixed by this
patch from yesterday:
  http://cr.openjdk.java.net/~shade/shenandoah/c1-store-const-rb/webrev.01

Thanks,
-Aleksey

On 06/29/2017 02:35 PM, Aleksey Shipilev wrote:
> I do not understand what you are saying. I have been running this patch for
> hours on x86 now, and it works.
> 
> -Aleksey
> 
> P.S. Tether your phone to computer, and hop onto IRC?
> 
> On 06/29/2017 02:13 PM, Roman Kennke wrote:
>> IIRC, it doesn't compile like this. If it's not a reg, it needs to emit a mov
>> from const to reg.
>>
>> Roman
>>
>> Am 29. Juni 2017 14:04:12 MESZ schrieb Aleksey Shipilev <shade at redhat.com>:
>>
>>     Well, the symmetry argument still stands: x86 and aarch64 versions should be
>>     consistent. aarch64 makes unconditional RB for store values. I think it makes no
>>     harm to emit RB there for extra safety.
>>
>>     -Aleksey
>>
>>     On 06/29/2017 01:59 PM, Roman Kennke wrote:
>>
>>         I thought that too. But then realized we don't need barriers on
>>         constants for
>>         store values. Will explain on IRC as soon as my internet conn is back
>>         alive...
>>
>>         Am 29. Juni 2017 13:55:31 MESZ schrieb Aleksey Shipilev <shade at redhat.com>:
>>
>>         I think this part of C1 is incorrect when barriers are required for
>>         constants:
>>         http://cr.openjdk.java.net/~shade/shenandoah/c1-store-const-rb/webrev.01
>>         <http://cr.openjdk.java.net/%7Eshade/shenandoah/c1-store-const-rb/webrev.01>
>>         <http://cr.openjdk.java.net/%7Eshade/shenandoah/c1-store-const-rb/webrev.01>/
>>
>>         This might explain a few test failures we have: the from-space constant
>>         is read
>>         before concurrent evacuation has the chance to update it. Then it gets
>>         stored to
>>         another heap location, and everything blows up.
>>
>>         While we could conditionalize this on ShBarriersForConst, this is C1
>>         code, which
>>         does not have to be super-optimal. Surprisingly, the new code is what
>>         c1_LIRGenerator_aarch64 is already doing, so this patch seems good from the
>>         symmetry standpoint too.
>>
>>         Testing: hotspot_gc_shenandoah
>>
>>         Thanks,
>>         -Aleksey
>>
>>
>>
>>         -- 
>>         Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
>>
>>
>>
>>
>> -- 
>> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
> 
> 




More information about the shenandoah-dev mailing list