Request for Review (s) - 8060463: ParNew: SurvivorAlignmentInBytes greater then YoungPLABSize cause assert(obj != NULL || plab->words_remaining() < word_sz) failed: Else should have been able to allocate

sangheon at
Wed Mar 23 23:55:20 UTC 2016

Hi Jon,

Looks good to me.

I have some minor comments.
  261                SIZE_FORMAT " PLab size " SIZE_FORMAT " 
SurvivorAlignmentInBytes "
1. Instead of 'PLab', how about 'PLAB' or 'plab'?

2. How about adding comma or bracket at the modified log messages for 
values for better readability?

3. If you care about the copyright year, please update the newly added 
test's one.


On 03/20/2016 08:04 PM, Jon Masamitsu wrote:
> If SurvivorAlignmentInBytes is larger than the size of the promotion
> LAB an allocation aligned to SurvivorAlignmentInBytes  may fail. The
> allocation of the PLAB depends of the size of the object being
> allocated and if the PLAB is successfully allocated the allocation
> of the object should succeeded (and is checked by an assertion).
> For alignments larger than  PLAB, a larger PLAB is sometimes needed
> to allow for the alignment.
> The fix does not try to avoid the need for a new PLAB at the
> next promotion by making the PLAB even larger.  The large
> values of SurvivorAlignmentInBytes  are allowed but not
> expected.  I chose not to make the PLAB even larger for a
> situation I don't expect to see in practice.
> Tested with the newly added test which check a range
> of SurvivorAlignmentInBytes values.
> Thanks.
> Jon

More information about the hotspot-gc-dev mailing list