RFR 8065579: WB method to start G1 concurrent mark cycle should be introduced
Stefan Johansson
stefan.johansson at oracle.com
Wed Nov 26 16:58:25 UTC 2014
Hi Leonid,
This looks good. I can sponsor and push the change but we need a
Reviewer that looks at the change first.
Thanks,
Stefan
On 2014-11-26 15:56, Leonid Mesnik wrote:
> Stefan
>
> Thank you for reviewing fix.
>
> Here is update version:
> http://cr.openjdk.java.net/~sjohanss/lmesnik/8065579/hotspot.01/
> <http://cr.openjdk.java.net/%7Esjohanss/lmesnik/8065579/hotspot.01/>
>
> I simplified test to be more robust. It tests only that we could start
> mark cycle after young/full GC and when concurrent mark cycle is not
> in progress.
>
> Leonid
>
> On 24.11.2014 15:23, Stefan Johansson wrote:
>> Hi Leonid,
>>
>> I think the changes for making it possible to trigger a marking cycle
>> through the WB API looks good. There are however some problems with
>> the test.
>> ---
>> 24 assertTrue(wb.g1StartConcMarkCycle());
>> 25 wb.fullGC();
>> 26 assertTrue(wb.g1StartConcMarkCycle());
>>
>> Here the test assumes that it should be able to trigger a new marking
>> cycle since the Full-GC have aborted the previous one, but it is
>> possible that the concurrent mark thread hasn't yet finished the
>> cycle even if it has been aborted. That is, during cycle will return
>> true for some time after the concurrent mark has been aborted.
>> ---
>> 28 while (wb.g1InConcurrentMark()) {
>> 29 assertFalse(wb.g1StartConcMarkCycle());
>> 30 }
>> 31
>> 32 assertTrue(wb.g1StartConcMarkCycle());
>> 33
>> 34 while (wb.g1InConcurrentMark()) {
>> 35 assertFalse(wb.g1StartConcMarkCycle());
>> 36 }
>>
>> Here the problem is that we can't guarantee that the concurrent cycle
>> won't finish just before the call to wb.g1StartConcMarkCycle(), and
>> therefor the assert might fail.
>> ---
>>
>> I'm not sure how you want to improve the test to avoid these
>> problems, the only really robust way I think is to only use the
>> g1InConcurrentMark() call to wait until marking is finished and then
>> assert that we can trigger a new cycle.
>>
>> Thanks,
>> Stefan
>>
>> On 2014-11-20 16:13, Leonid Mesnik wrote:
>>> Hi
>>>
>>> Here is the fix which introduce WB method which stars concurrent
>>> mark cycle explicitly. It is needed to make CM cycle related tests
>>> more stable.
>>>
>>> Changeset also includes test and very small fix of WB method
>>> g1InConcurrentMark .
>>> Fix pass JPRT with hotspot testset.
>>>
>>> JIRA: https://bugs.openjdk.java.net/browse/JDK-8065579
>>> Webrev: http://cr.openjdk.java.net/~sjohanss/lmesnik/8065579/hotspot.00/
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20141126/4ac63bc8/attachment.htm>
More information about the hotspot-gc-dev
mailing list