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.org/pipermail/hotspot-gc-dev/attachments/20161110/a38d12cd/attachment.htm>
More information about the hotspot-gc-dev
mailing list