RFR(xs): 8152120: TLAB compute_size() should not allow any size larger than max_size (original) (raw)

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::computesize() usually returns a value of 'desiredsize() + aligned object size'. When ThreadLocalAllocBuffer::desiredsize() 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::maxsize(). 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