Request for Review (s) - 8060463: ParNew: SurvivorAlignmentInBytes greater then YoungPLABSize cause assert(obj != NULL | (original) (raw)
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
Jon Masamitsu jon.masamitsu at oracle.com
Thu Mar 24 15:14:24 UTC 2016
- Previous message (by thread): 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
- Next message (by thread): 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
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Sangheon,
Thanks for the review.
On 3/23/2016 4:55 PM, sangheon wrote:
Hi Jon,
Looks good to me. I have some minor comments. http://cr.openjdk.java.net/~jmasa/8060463/webrev.00/src/share/vm/gc/cms/parNewGeneration.cpp.frames.html 261 SIZEFORMAT " PLab size " SIZEFORMAT " SurvivorAlignmentInBytes " 1. Instead of 'PLab', how about 'PLAB' or 'plab'?
Changed to PLAB.
2. How about adding comma or bracket at the modified log messages for values for better readability?
Added commas.
3. If you care about the copyright year, please update the newly added test's one.
Fixed.
I'll send out a new webrev shortly.
Jon
Thanks, Sangheon
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. https://bugs.openjdk.java.net/browse/JDK-8060463 http://cr.openjdk.java.net/~jmasa/8060463/webrev.00/ Tested with the newly added test which check a range of SurvivorAlignmentInBytes values. Thanks. Jon
- Previous message (by thread): 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
- Next message (by thread): 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
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]