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

Dmitry Fazunenenko dmitry.fazunenko at oracle.com
Thu Nov 10 12:15:19 UTC 2016


Michail,

thanks for explanation.
Your fix looks good to me now.

-- Dima

On 11/10/2016 2:25 PM, Michail Chernov wrote:
> 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/a38d12cd/attachment.htm>


More information about the hotspot-gc-dev mailing list