RFR: 6979279: remove special-case code for ParallelGCThreads==0

Kim Barrett kim.barrett at oracle.com
Mon Oct 20 16:23:50 UTC 2014


On Oct 17, 2014, at 7:51 AM, Marcus Larsson <marcus.larsson at oracle.com> wrote:
> 
>> ==============================================================================
>> g1/satbQueue.hpp
>>  108   // Register "blk" as "the closure" for all queues.  Only one such closure
>>  109   // is allowed.  The "apply_closure_to_completed_buffer" method will apply
>>  110   // this closure to a completed buffer, and "iterate_closure_all_threads"
>>  111   // applies it to partially-filled buffers (the latter should only be done
>>  112   // with the world stopped).
>>  113   void set_closure(int i, ObjectClosure* closure);
>> 
>> I see no "blk" in the signature.  [Pre-existing problem.]
>> 
>> The emphasis on "the closure" and "only one such closure" is left over
>> from the non-parallel version, and seems like it should be updated.
>> 
> 
> Rewrote the comment a bit.

The rewrite is better.

>> ==============================================================================
>> memory/freeList.hpp
>> memory/freeList.cpp
>> assert_proper_lock_protection()
>> 
>> New implementation always involves a function call (to an empty
>> implementation #ifndef ASSERT), rather than being optimizable to
>> nothing #ifdef PRODUCT.  So I think the part of the change to this
>> function around the use of PRODUCT/ASSERT is incorrect, and should be
>> reverted.
>> 
> 
> Yeah I realize this was not really optimal for product builds. Took back the _work function, but only define and call it #ifdef ASSERT. The function makes little sense if assertions are disabled.

New version looks ok.

>> ==============================================================================
>> memory/sharedHeap.cpp
>>   71   if ((UseParNewGC ||
>>   72       (UseConcMarkSweepGC && (CMSParallelInitialMarkEnabled ||
>>   73                               CMSParallelRemarkEnabled)) ||
>>   74        UseG1GC) &&
>>   75       use_parallel_gc_threads()) {
>> 
>> Seems like we shouldn't need call to use_parallel_gc_threads() here.
>> 
> 
> The call is still needed for the CMS part, although not for ParNew or G1, so I moved it inside the appropriate parenthesis.

Ah, I was confused by the initial review request, which said
    "A recent change [1] forbidding this flag [kab: ParallelGCThread] to be set to 0 …”
but that recent change was G1-specific.

New version looks ok.  I’m not crazy about the really long line, but hotspot coding guidelines explicitly
disavow a line length limit.

> New webrev:
> http://cr.openjdk.java.net/~mlarsson/6979279/webrev.04/
> 
> Incremental:
> http://cr.openjdk.java.net/~mlarsson/6979279/webrev.03-04/

Looks good.




More information about the hotspot-gc-dev mailing list