RFR (L): JDK-6843347 Boundary values in some public GC options cause crashes

Thomas Schatzl thomas.schatzl at oracle.com
Fri May 3 16:22:46 UTC 2013


Hi Jon,

  thanks for your comments.

On Fri, 2013-05-03 at 08:57 -0700, Jon Masamitsu wrote:
> Why a minimum value of CMSPrecleanThreshold as 100?  A value as low as 1 
> works, right?

In concurrentMarkSweepGeneration.cpp, line 4591 there is an assert
checking:

  assert(CMSPrecleanThreshold >= 100,
         "Unreasonably low CMSPrecleanThreshold");

I.e. these min/max values are sometimes derived from walking through the
code and trying to satisfy assertions, otherwise using a value that
while maybe crazy at least does not crash or completely disable
operation (i.e. running into infinite loops).

> Should we make the minimum for HeapSizePerGCThread 1 page and document it
> that way?  A value of 1 is legal but it's a crazy value and if anyone 
> uses 1, they've made a mistake.
> 
> +  status = status && verify_min_value(HeapSizePerGCThread, 1, "HeapSizePerGCThread");
> 
> Rest looks good.

Fine with me. I will change the code accordingly. I will prepare a new
webrev; please tell me if you want me to fix the CMSPrecleanThreshold
too.

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list