RFR(xs): 8152120: TLAB compute_size() should not allow any size larger than max_size
sangheon
sangheon.kim at oracle.com
Fri Mar 18 17:33:09 UTC 2016
Hi Stefan,
Thanks for reviewing this.
On 03/18/2016 02:30 AM, Stefan Johansson wrote:
> Hi Sangheon,
>
> On 2016-03-18 06:50, sangheon wrote:
>> Hi all,
>>
>> Could I have a couple of reviews for this change to limit new TLAB size?
>>
>> ThreadLocalAllocBuffer::compute_size() usually returns a value of
>> 'desired_size() + aligned object size'.
>> When ThreadLocalAllocBuffer::desired_size() reaches to the TLAB max
>> size, we don't limit this value to be less than or equal to TLAB max
>> size.
>>
>> This change is proposing to limit to ThreadLocalAllocBuffer::max_size().
>>
>> CR: https://bugs.openjdk.java.net/browse/JDK-8152120
>> Webrev: http://cr.openjdk.java.net/~sangheki/8152120/webrev.00
> Looks good, but there is a MIN3() function that you could use if you
> like.
Okay, I will use that.
Webrev: http://cr.openjdk.java.net/~sangheki/8152120/webrev.01
>
> Just out of curiosity, is this something you have seen a lot and if so
> for which collectors?
No, usually this doesn't happen.
I found this issue with ParallelGC when I investigated JDK-8151708:
SIGSEGV with MinTLABSize=4294967296 on Sparcv9.
If we have really large MinTLABSize(and/or large related flags), this
problem would happen for all collectors in theory. Because when we
calculate desired_size() we limit not to exceed max_size() but
compute_size() is using 'desired_size() + aligned_obj_size'.
Thanks,
Sangheon
>
> Thanks,
> Stefan
>
>> Testing: JPRT
>>
>> Thanks,
>> Sangheon
>
More information about the hotspot-gc-dev
mailing list