RFR(xs): 8145190: MinTLABSize can cause overflow problem with CMS GC

sangheon sangheon.kim at oracle.com
Fri Jan 29 17:01:01 UTC 2016


Hi Jesper and Tom,

Thanks for the review!

Sangheon


On 01/29/2016 06:13 AM, Tom Benson wrote:
> Looks fine to me as well.
> Tom
>
> On 1/29/2016 8:13 AM, Jesper Wilhelmsson wrote:
>> Looks good!
>> /Jesper
>>
>> Den 29/1/16 kl. 07:46, skrev sangheon:
>>> Hi all,
>>>
>>>     Could I have reviews for this small change to avoid an overflow for
>>> MinTLABSize?
>>>
>>>    Current maximum value of MinTLABSize makes SIGFPE on CMSCollector 
>>> constructor
>>> as 'PLAB::min_size() * HeapWordSize' makes an overflow. 'size_t
>>> PLAB::min_size()' which returns 'align_object_size(MAX2(MinTLABSize /
>>> HeapWordSize, (uintx)oopDesc::header_size())) + AlignmentReserve' 
>>> makes the
>>> problem with addition of 'AlignmentReserve'.
>>>    MinTLABSize flag is 'AfterMemoryInit' which means the constraint 
>>> check will
>>> happen after creating the heap, because we need to check this flag 
>>> to be larger
>>> than ThreadLocalAllocBuffer::alignment_reserve_in_bytes().
>>>
>>>    As the maximum value of max_uintx is not practical, it would be 
>>> better to
>>> restrict its maximum than introducing additional constraint check. 
>>> For now we
>>> don't have multiple time constraint check. And any value smaller 
>>> than 'max_uintx
>>> - PLAB::AlignmentReserve*HeapWordSize' will be fine but I think 
>>> 'max_uintx / 2'
>>> is large enough. PLAB::AlignmentReserve is calculated after heap 
>>> creation.
>>>    With quite large values, this problem would be hidden by other flags
>>> constraint. e.g. YoungPLABSize.
>>>
>>>     I didn't add a new test as JDK-8144578 enables to check this 
>>> problem.
>>>
>>> CR: https://bugs.openjdk.java.net/browse/JDK-8145190
>>> Webrev: http://cr.openjdk.java.net/~sangheki/8145190/webrev.00
>>> Testing: JPRT, RBT (TestOptionsWithRanges.java for all platforms 
>>> including CMS GC)
>>>
>>> Thanks,
>>> Sangheon
>




More information about the hotspot-gc-dev mailing list