RFR(s): 8145312: CMS: There is insufficient memory with CMSSamplingGrain=1

Jon Masamitsu jon.masamitsu at oracle.com
Tue Mar 8 19:20:50 UTC 2016


Sangheon,

http://cr.openjdk.java.net/~sangheki/8145312/webrev.00/src/share/vm/runtime/commandLineFlagConstraintsGC.cpp.frames.html

456 if (value > max_uintx - max_capacity) {
457 CommandLineError::print(verbose,
458 "CMSSamplingGrain (" UINTX_FORMAT ") must be "
459 "less than or equal to ergonomic maximum (" SIZE_FORMAT ")\n",
460 value, max_uintx - max_capacity);


How did you decide to use the test "value > max_uintx - max_capacity"?

Jon

On 3/8/2016 12:00 AM, sangheon wrote:
> Hi all,
>
> Could I have some reviews for CMSSamplingGrain flag?
>
> The flag is used to calculate points at which the young gen should be 
> partitioned for doing parallel work, so it only makes sense to 
> partition at a granularity equal to or larger than the object size.
>
> I am proposing to change the minimum value of CMSSamplingGrain from 
> '1' to 'ObjectAlignmentInBytes'.  (ObjectAlignmentInBytes has a range 
> of [8, 256]).
>
> In addition, I added a constraint function to avoid an arithmetic 
> overflow by its maximum value.
>
> CR: https://bugs.openjdk.java.net/browse/JDK-8145312
> Webrev: http://cr.openjdk.java.net/~sangheki/8145312/webrev.00/
> Testing: JPRT, RBT for all platforms including embedded
>
> Thanks,
> Sangheon



More information about the hotspot-gc-dev mailing list