RFR(xs): 8153201: TestOptionsWithRanges fails with -XX:OldPLABSize=2147483648

sangheon sangheon.kim at oracle.com
Fri Apr 1 07:07:15 UTC 2016

Hi Bengt,

Thank you for looking at this.

On 03/31/2016 10:21 PM, Bengt Rutisson wrote:
> Hi Sangheon,
> On 2016-04-01 02:05, sangheon wrote:
>> Hi all,
>> Could I have a couple of reviews for this tiny change for OldPLABSize 
>> flag?
>> We would face an assert complaining too large array size based on 
>> OldPLABSize.
>> And we already have a constraint for this flag checking same 
>> value(ThreadLocalAllocBuffer::max_size) but the constraint function 
>> is checking for CMS GC and G1 GC.
>> This change is just adding parallel gc on that check routine to limit 
>> both min and max.
>> CR: https://bugs.openjdk.java.net/browse/JDK-8153201
>> Webrev: http://cr.openjdk.java.net/~sangheki/8153201/webrev.00
> Do we need to check for the GC at all? SerialGC does not use PLABs, 
> but that just means that those who use SerialGC should not have 
> OldPALBSize on their command lines. But if they do, why should it be 
> ok to set it to an arbitrary value? So, I would suggest just removing 
> the GC check all together.
Range/constraint validation is only working on utilized flags and there 
are 2 reasons.
Firstly, sometimes there's no way to validate. For example, 
ParGCStridesPerThread flag is only used at CMS GC. If other GCs want to 
validate it, how can we validate it? Allow all values? That is same as 
not checking.
Secondly, original JEP JDK-8059557 describes as "Non-goal 1. We will not 
validate arguments to flags that are not processed by the JVM". Sorry to 
mention the JEP again, but I'm trying to explain current implementation, 
I'm not refusing the enhancement if needed. :)

In this particular case, OldPLABSize for serial GC can be limited same 
as parallel gc unintentionally.
Because PLAB max is limited by TLAB max and TLAB max is set by 
CollectedHeap::max_tlab_size() which serial gc also has.

However, I think it will be better to remain as is for consistency.


> Thanks,
> Bengt
>> Testing: JPRT, runtime/commandline JTREG tests for all platforms.
>> Thanks,
>> Sangheon

More information about the hotspot-gc-dev mailing list