RFR: 8165955: TestFullGCCount test failed with CMS and -XX:+ExplicitGCInvokesConcurrent

Michail Chernov michail.chernov at oracle.com
Thu Nov 10 11:25:27 UTC 2016

Hi Dima,

Thanks for your answer. ExplicitGCInvokesConcurrent=true is used in CMS 
and G1 ([1][2]). CMS ends with concurrent phases, G1 ends with STW 
phases [3][4]. Performance counters are updated in 
TraceMemoryManagerStats::~TraceMemoryManagerStats() which is invoked in 
G1CollectedHeap::do_full_collection() and CMSCollector::sweep(). So I 
don't see any reason why we should don't execute this test with G1 and 
ExplicitGCInvokesConcurrent=true. I'd like to keep requires as in this 
change. Furthermore I have a change for WhiteBox to retreive CMS state 
(is in idling or not)[5], which can allow this test run with CMS and 
ExplicitGCInvokesConcurrent, but it targeted to 10.

[1] hotspot/src/share/vm/gc/shared/genCollectedHeap.cpp:309  bool 
GenCollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause)
[2] hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp:2172 bool 
G1CollectedHeap::is_user_requested_concurrent_full_gc(GCCause::Cause cause)
[3] http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html
[4] https://blogs.oracle.com/jonthecollector/entry/hey_joe_phases_of_cms
[5] https://bugs.openjdk.java.net/browse/JDK-8169510

On 10/11/2016 12:47, Dmitry Fazunenenko wrote:
> Hi Michail,
> I think this test is not designed to work in 
> ExplicitGCInvokesConcurrent=true.
> So, I would require:
>  * @requires vm.opt.ExplicitGCInvokesConcurrent != true
> Thanks,
> Dima
> On 11/9/2016 7:44 PM, Michail Chernov wrote:
>> Hi,
>> Could I have a reviews for this small change which excludes test run 
>> with CMS and -XX:+ExplicitGCInvokesConcurrent, please?
>> https://bugs.openjdk.java.net/browse/JDK-8165955
>> http://cr.openjdk.java.net/~mchernov/8165955/webrev.00/
>> Test fails because CMS with -XX:+ExplicitGCInvokesConcurrent causes 
>> to java's threads unlocking before CMSCollector::sweep() has been 
>> done. So the GC counters can be updated after test gets their value.
>> Thanks,
>> Michail

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20161110/db8ad8c6/attachment.htm>

More information about the hotspot-gc-dev mailing list