RFR: fix aarch64 membar elision with shenandoah

Aleksey Shipilev shade at redhat.com
Fri Jul 13 14:37:57 UTC 2018


On 07/13/2018 04:33 PM, Roland Westrelin wrote:
> 
>> Oh wait, I just got this from a test:
>>
>> #  Internal Error
>> (/home/rkennke/src/shenandoah-jdk/src/hotspot/cpu/aarch64/aarch64.ad:2873),
>> pid=27969, tid=28271
>> #  guarantee(mbar != NULL) failed: CAS not embedded in normal graph!
> 
> With this test we're running with:
> 
> -XX:+ShenandoahSATBBarrier -XX:+ShenandoahWriteBarrier -XX:+ShenandoahReadBarrier -XX:+ShenandoahStoreValEnqueueBarrier
> 
> so we have a write barrier, an enqueue barrier and a satb barrier above
> the CAS. Why does it make sense to run with options that are not usually
> enabled together?

The test is used to verify that we do not emit barriers when particular types of barriers are
disabled: there are asserts all over runtime, C1 and C2 code to test these. Over time, it started to
be the test to make sure that arguments/heuristics code verifies and drops the incompatible
combination of flags.

-Aleksey




More information about the shenandoah-dev mailing list