Request for review JDK-8151045,,Remove code duplication in PLABStats/G1EvacStats::adjust_desired_plab_sz

Alexander Harlap alexander.harlap at oracle.com
Fri Feb 17 23:10:38 UTC 2017



On 2/17/2017 5:55 PM, Alexander Harlap wrote:
> Hi Kim,
>
> Thank you for your review.
>
>
> On 2/17/2017 5:19 PM, Kim Barrett wrote:
>>> On Feb 17, 2017, at 1:06 PM, Alexander Harlap 
>>> <alexander.harlap at oracle.com> wrote:
>>>
>>> Please review change for JDK-8151045 - Remove code duplication in 
>>> PLABStats/G1EvacStats::adjust_desired_plab_sz
>>>
>>> Change is located at 
>>> http://cr.openjdk.java.net/~aharlap/8151045/webrev.00/
>>>
>>> Common code is at (not virtual) PLABStats::adjust_desired_plab_sz() 
>>> and class specific code is at new virtual helper method.
>>>
>>> Alex
>> ------------------------------------------------------------------------------ 
>>
>> src/share/vm/gc/shared/plab.hpp
>> src/share/vm/gc/g1/g1EvacStats.hpp
>>   201   // helper for adjust_desired_plab_sz().
>>   202   virtual size_t adjust_desired_plab_sz_helper();
>>
>> The new helper function should be protected, not public.
>   Agree
>> A better name for the new helper function would be
>> compute_desired_plab_sz.
>  Agree
>> ------------------------------------------------------------------------------ 
>>
>> src/share/vm/gc/shared/plab.cpp
>>   168   if (_allocated == 0) {
>>   169     assert(_unused == 0,
>>   170            "Inconsistency in PLAB stats: "
>>   171            "_allocated: " SIZE_FORMAT ", "
>>   172            "_wasted: " SIZE_FORMAT ", "
>>   173            "_unused: " SIZE_FORMAT ", "
>>   174            "_undo_wasted: " SIZE_FORMAT,
>>   175            _allocated, _wasted, _unused, _undo_wasted);
>>   176
>>   177     _allocated = 1;
>>   178   }
>>
>> and
>> src/share/vm/gc/g1/g1EvacStats.cpp
>>    50   if (_allocated == 0) {
>>    51     assert((_unused == 0),
>>    52            "Inconsistency in PLAB stats: "
>>    53            "_allocated: " SIZE_FORMAT ", "
>>    54            "_wasted: " SIZE_FORMAT ", "
>>    55            "_region_end_waste: " SIZE_FORMAT ", "
>>    56            "_unused: " SIZE_FORMAT ", "
>>    57            "_used  : " SIZE_FORMAT,
>>    58            _allocated, _wasted, _region_end_waste, _unused, 
>> used());
>>    59     _allocated = 1;
>>    60   }
>>
>> I think further improvement is possibleBy removing the near
>> duplication here.
>>
>> (1) In both places remove the above quoted code.
>>
>> (2) In the shared/plab version of the helper, protect the one
>> reference to _allocated against a zero value.
> What do you mean here?
Never mind.
Got it.
>> (3) In the main adjust function, add an assert
>>      assert(_allocated != 0 || _unused == 0, ...);
>>
>> This loses the G1 specific _region_and_waste value if the assertion
>> fails, but keeping that doesn't seem worth the code duplication.
>>
>> ------------------------------------------------------------------------------ 
>>
>>
>
> Thank you,
> Alex



More information about the hotspot-gc-dev mailing list