Application failure with traversal

Roman Kennke rkennke at redhat.com
Fri Feb 9 19:24:40 UTC 2018


Cool. This shall give me a clue what might be going on. Does it still fail with:

diff --git a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp
@@ -1308,7 +1308,6 @@
     FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
     FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier,       false);
     FLAG_SET_DEFAULT(ShenandoahAsmWB,                  true);
-    FLAG_SET_DEFAULT(ShenandoahBarriersForConst,       true);
     FLAG_SET_DEFAULT(ShenandoahWriteBarrierRB,         false);
     FLAG_SET_DEFAULT(ShenandoahAllocImplicitLive,      false);
   }


applied?

I don't think this flag is actually required at this point, and should
even result in a performance boost.

Cheers, Roman

On Fri, Feb 9, 2018 at 8:09 PM, Lennart Börjeson
<lennart.borjeson at cinnober.com> wrote:
>
>
>> 9 feb. 2018 kl. 19:42 skrev Aleksey Shipilev <shade at redhat.com>:
>>
>> On 02/09/2018 07:38 PM, Lennart Börjeson wrote:
>>>
>>>
>>>> 9 feb. 2018 kl. 19:18 skrev Lennart Börjeson <lennart.borjeson at cinnober.com>:
>>>>
>>>>
>>>>
>>>>> 9 feb. 2018 kl. 18:36 skrev Aleksey Shipilev <shade at redhat.com>:
>>>>>
>>>>> On 02/09/2018 06:27 PM, Lennart Börjeson wrote:
>>>>>>> c) C2: -XX:-TieredCompilation
>>>>>>
>>>>>> Fails.
>>>>>
>>>>> OK, both good and bad! And that is without any GC cycle happening, right? If so, that must
>>>>> definitely point at something gone wrong in C2, which means we can use passive mode, and gradually
>>>>> narrow down which part had failed (in order of most probability):
>>>>>
>>>>> 0) Run with -XX:-TieredCompilation -XX:ShenandoahGCHeuristics=passive
>>>> Runs OK.
>>>>> 1) Add -XX:+ShenandoahBarriersForConst
>>>> Runs OK.
>>>>> 2) Add -XX:+ShenandoahAsmWB
>>>> Runs OK.
>>>>> 3) Add -XX:+ShenandoahReadBarrier
>>>> Fails.
>>>>> 4) Add -XX:+ShenandoahWriteBarrier
>>>> Fails.
>>>>> 5) Add -XX:-ShenandoahWriteBarrierRB
>>>> Fails.
>>>>> 6) Add -XX:+ShenandoahStoreValEnqueueBarrier
>>>> Fails.
>>>>> 7) Add -XX:+ShenandoahCASBarrier
>>>> Fails.
>>>>> 8) Add -XX:+ShenandoahAcmpBarrier
>>>> Fails.
>>>>> 9) Add -XX:+ShenandoahCloneBarrier
>>>> Fails.
>>>>>
>>>>> -Aleksey
>>>>>
>>>>
>>>> I also ran with all barriers except ReadBarrier enabled, i.e. with -XX:-TieredCompilation -XX:ShenandoahGCHeuristics=passive -XX:+ShenandoahBarriersForConst -XX:+ShenandoahAsmWB -XX:-ShenandoahReadBarrier -XX:+ShenandoahWriteBarrier -XX:-ShenandoahWriteBarrierRB -XX:+ShenandoahStoreValEnqueueBarrier  -XX:+ShenandoahCASBarrier -XX:+ShenandoahAcmpBarrier -XX:+ShenandoahCloneBarrier
>>>>
>>>> Run OK.
>>>
>>> Sorry, missed a barrier in that test, but enabling ShenandoahWriteBarrierRB didn't cause any failure, i.e.
>>> -XX:-TieredCompilation
>>> -XX:ShenandoahGCHeuristics=passive
>>> -XX:+ShenandoahBarriersForConst
>>> -XX:+ShenandoahAsmWB
>>> -XX:-ShenandoahReadBarrier
>>> -XX:+ShenandoahWriteBarrier
>>> -XX:+ShenandoahWriteBarrierRB
>>> -XX:+ShenandoahStoreValEnqueueBarrier
>>> -XX:+ShenandoahCASBarrier
>>> -XX:+ShenandoahAcmpBarrier
>>> -XX:+ShenandoahCloneBarrier
>>>
>>> This test ran OK.
>>
>> Ok, minimizing in further, does it fail with RB alone?
>>
>>  -XX:-TieredCompilation
>>  -XX:ShenandoahGCHeuristics=passive
>>  -XX:+ShenandoahReadBarrier
>>
>> If not, what is the preceding flags are making it fail, e.g. -XX:+ShenandoahBarriersForConst or
>> -XX:+ShenandoahAsmWB?
>>
>> -Aleksey
>
> It does not fail with RB alone.
>
> ShenandoahBarriersForConst must be enabled, i.e. these switches FAIL:
>
> /home/tetest/TE/system/jdk/shenandoah/bin/te_cd1 -cp /home/tetest/TE/system/tmp/9.2.0-cd1-shenandoah-b6b99905e2ce9889849423a089815f73.jar  -server -Xms2400M -Xmx4800M -XX:+PrintFlagsFinal -Xlog:gc*=info:stdout:uptime,uptimenanos,timenanos,level,tags --add-modules java.xml.bind --add-exports java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED  -XX:+UseShenandoahGC -XX:ConcGCThreads=8 -XX:ParallelGCThreads=4 -XX:MonitorBound=20000 -XX:-UseBiasedLocking -XX:+DoEscapeAnalysis -XX:+UseNUMA -XX:+UnlockExperimentalVMOptions -XX:-TieredCompilation -XX:ShenandoahGCHeuristics=passive -XX:+ShenandoahBarriersForConst -XX:-ShenandoahAsmWB -XX:+ShenandoahReadBarrier -XX:-ShenandoahWriteBarrier -XX:-ShenandoahWriteBarrierRB -XX:-ShenandoahStoreValEnqueueBarrier -XX:-ShenandoahCASBarrier -XX:-ShenandoahAcmpBarrier -XX:-ShenandoahCloneBarrier -DRoundRobinPrio=0 -DHibernate3=true -DdumpConfig=VALUE  -Djava.net.preferIPv4Stack=true -Djava.util.prefs.systemRoot=/home/tetest com.cinnober.framework.server.impl.FwStart --stdouttolog --stderrtolog -s CD1 -r http://frank-10g.cinnober.com:22780 -i TE -v com.cinnober.common.version.TeVersion
>
> /Lennart
>


More information about the shenandoah-dev mailing list