RFR (XS) 8212005: Epsilon elastic TLAB sizing may cause misalignment

Per Liden per.liden at oracle.com
Thu Oct 11 10:03:58 UTC 2018


On 10/11/2018 12:00 PM, Aleksey Shipilev wrote:
> On 10/11/2018 11:48 AM, Per Liden wrote:
>> I think you want to make sure that _max_tlab_size also ends up being aligned to MinObjectAlignment
>> here:
>>
>>    50   _max_tlab_size = MIN2(CollectedHeap::max_tlab_size(), EpsilonMaxTLABSize / HeapWordSize);
>>
>> Otherwise you risk allocating a TLAB larger than _max_tlab_size here:
>>
>>   214   // Always honor boundaries
>>   215   size = MAX2(min_size, MIN2(_max_tlab_size, size));
>>   216
>>   217   // Always honor alignment
>>   218   size = align_up(size, MinObjAlignment);
>>
>> Right?
> 
> Right. Or this means that EpsilonMaxTLABSize has to be additionally checked for alignment before
> use. If EpsilonMaxTLABSize is proper, then size is always aligned too, even if it gets capped by
> _max_tlab_size, right?

Right.

> 
> Unfortunately, I have already pushed the fix, and can follow up on this in a separate RFE.

Ok.

/Per



More information about the hotspot-gc-dev mailing list