RFR: 8071462: Remove G1ParGCAllocator::alloc_buffer_waste

Michail Chernov michail.chernov at oracle.com
Fri Apr 17 17:30:34 UTC 2015


Hi Thomas,

Thanks for advice!

http://cr.openjdk.java.net/~dpochepk/~mchernov/8071462/webrev.03/

Methods were renamed, removed extra comma, class G1PLABWasteStat was 
removed, now G1PLAB::ddd gets 2 references. Also I merged my changes 
with new changes in repo because ParGCAllocBuffer and G1ParGCAllocBuffer 
were renamed to PLAB and G1PLAB and patch does not apply clear during 
merging.

Thanks,
Michail

On 17.04.2015 14:38, Thomas Schatzl wrote:
> Hi,
>
> On Fri, 2015-04-17 at 14:23 +0300, Michail Chernov wrote:
>> Hi Thomas,
>>
>> Thanks for looking!
>>
>> On 17.04.2015 14:08, Thomas Schatzl wrote:
>>> Hi Michail,
>>>
>>> On Wed, 2015-04-15 at 21:42 +0300, Michail Chernov wrote:
>>>> Hi Thomas,
>>>>
>>>> I tried to make all what you said.
>>>> Webrev: http://cr.openjdk.java.net/~dpochepk/~mchernov/8071462/webrev.02/
>>>>
>>>> ParGCAllocBuffer::add_undo_waste and
>>>> ParGCAllocBuffer::undo_last_allocation were made as protected members.
>>>>
>>>> ParGCAllocBuffer::undo_allocation now does the same as
>>>> ParScanThreadState::undo_alloc_in_to_space and
>>>> G1ParGCAllocator::undo_allocation
>>>>
>>>> G1ParGCAllocator has virtual G1PLABWasteStat wasted() = 0; method which
>>>> must be implemented in all heirs.
>>>>
>>>> Introduced new class G1PLABWasteStat (g1Allocator.hpp) that retrieves
>>>> wasted and undo wasted values from allocation buffers. If new class is
>>>> not acceptable there, I can add 2 virtual methods to G1ParGCAllocator
>>>> for retrieving wasted and undo wasted values.
>>>     some comments:
>>>
>>> - Introduction of G1PLABWasteStat fine with me, although I would not add
>>> an extra type just for two values to be returned.
>> Should I create 2 separate virtual method to get wasted and undo wasted
>> values? Or I can use Pair template which is from utilities/pair.hpp.
> Just two parameters which are passed by reference (we typically use
> pointers but I do not mind either) would be fine, that's why I said it
> would be preferable to me in this situation :) The struct isn't that
> much used (actually only in this place) and seems to add a lot of
> unnecessary boiler plate code just for transferring that information in
> this single place.
>
> Thanks,
>    Thomas
>
>
>
>



More information about the hotspot-gc-dev mailing list