RFR(XS): 8005875: G1: Kitchensink fails with ParallelGCThreads=0

Vitaly Davidovich vitalyd at gmail.com
Fri Feb 1 00:05:53 UTC 2013


Hi John,

I think the following assert can be strengthened a bit to be:

assert((_parallel_workers == NULL && parallel_marking_threads() == 0)||
513            parallel_marking_threads() > 0,
514            "parallel workers not set up correctly");

Don't know whether to also verify max_parallel_marking_ threads() == 0
there - may be too paranoid.

Looks good otherwise.

Thanks

Sent from my phone
On Jan 31, 2013 5:09 PM, "John Cuthbertson" <john.cuthbertson at oracle.com>
wrote:

> Hi Everyone,
>
> Here's a new webrev based upon feedback from Vitaly and Bengt:
> http://cr.openjdk.java.net/~**johnc/8005875/webrev.1/<http://cr.openjdk.java.net/~johnc/8005875/webrev.1/>
>
> I've wrapped the check with the asserts suggested by Bengt into a small
> routine.
>
> Testing:
> GC test suite with ConcGCThreads=3
> Kitchensink with ParallelGCThreads=0:
>
> Thanks,
>
> JohnC
>
> On 1/8/2013 2:13 PM, John Cuthbertson wrote:
>
>> Hi Everyone,
>>
>> Can I please have a couple of volunteers look over the fix for this CR -
>> the webrev can be found at: http://cr.openjdk.java.net/~**
>> johnc/8005875/webrev.0/<http://cr.openjdk.java.net/~johnc/8005875/webrev.0/>
>>
>> Summary:
>> One of the modules in the Kitchensink test generates a VM_PrintThreads vm
>> operation. The JVM crashes when it tries to print out G1's concurrent
>> marking worker threads when ParallelGCThreads=0 because the work gang has
>> not been created. The fix is to add the same check that's used elsewhere in
>> G1's concurrent marking.
>>
>> Testing:
>> Kitchensink with ParallelGCThreads=0
>>
>> Thanks,
>>
>> JohnC
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20130131/a6cb0ea1/attachment.htm>


More information about the hotspot-gc-dev mailing list