RFR (M): JDK-8030177: G1: Enable TLAB resizing

Bengt Rutisson bengt.rutisson at oracle.com
Thu Jan 23 12:24:54 UTC 2014


Hi Stefan

On 2014-01-23 10:41, Stefan Karlsson wrote:
> Hi Bengt,
>
> On 2014-01-23 10:27, Bengt Rutisson wrote:
>>
>> Hi all,
>>
>> I went through this change with Stefan Karlsson. Here is an updated 
>> webrev based on his suggestions:
>>
>> http://cr.openjdk.java.net/~brutisso/8030177/webrev.01/
>>
>> Here is a webrev with just the changes that Stefan suggested:
>>
>> http://cr.openjdk.java.net/~brutisso/8030177/webrev.01_delta/
>
> Not a full review, yet.
>
> http://cr.openjdk.java.net/~brutisso/8030177/webrev.01_delta/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp.frames.html 
>
>
> 192   return lgrp_spaces()->at(i)->space()->capacity_in_bytes() - 
> lgrp_spaces()->at(i)->space()->free_in_bytes();

No reason. I just forgot to update that. Thanks for catching it!

Bengt

>
>
> Is there a reason why you didn't change this to:
>
> lgrp_spaces()->at(i)->space()->used_in_bytes()
>
>
> thanks,
> StefanK
>
>>
>> Thanks,
>> Bengt
>>
>>
>> On 2014-01-13 14:09, Bengt Rutisson wrote:
>>>
>>> Hi Thomas,
>>>
>>> On 1/13/14 1:14 PM, Thomas Schatzl wrote:
>>>> Hi,
>>>>
>>>> On Thu, 2014-01-09 at 20:32 +0100, Bengt Rutisson wrote:
>>>>> Hi everyone,
>>>>>
>>>>> Can I have a couple of reviews for this change?
>>>>>
>>>>> http://cr.openjdk.java.net/~brutisso/8030177/webrev.00/
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8030177
>>>>>
>>>>> Unlike the other collectors G1 did not use dynamic sizes for the 
>>>>> TLABs
>>>>> that the Java threads use for allocation. That means that the TLABs
>>>>> when using G1 were all fixed size and very small. This patch adds
>>>>> dynamic sizing of TLABs to G1 too. In performance testing this has
>>>>> shown a 2-3% improvement across a range of benchmarks.
>>>>>
>>>>> One difference compared to other collectors is that the maximum TLAB
>>>>> size in G1 has to be limited by the region size and not by the eden
>>>>> size. Also, for the other collectors the used space for TLAB
>>>>> allocation was deducted from the maximum TLAB size because this was
>>>>> essentially what was left in eden. That is an assumption that 
>>>>> happened
>>>>> to work out, but it kind of breaks the abstraction. So, the method
>>>>> CollectedHeap:: tlab_used() has been added to be more consistent 
>>>>> about
>>>>> the TLAB abstraction and to make it more straight forward to 
>>>>> implement
>>>>> in G1.
>>>> threadLocalAllocBuffer.cpp:
>>>>
>>>> line 83: typo:  allcoation -> allocation
>>>>        // These allcoation should ideally not be counted but since 
>>>> it is
>>>> not possible
>>>>
>>>> Looks good. It's okay for me to just fix this without a re-review ;-)
>>>
>>> Thanks! I fixed the typo. :)
>>>
>>> Bengt
>>>
>>>
>>>>
>>>> Thomas
>>>>
>>>>
>>>
>>
>




More information about the hotspot-gc-dev mailing list