RFR: JDK-8078904 : CMS: Assert failed: Ctl pt invariant

Thomas Schatzl thomas.schatzl at oracle.com
Mon Jun 1 11:17:52 UTC 2015


On Thu, 2015-05-28 at 13:01 -0400, Eric Caspole wrote:
> Hi Thomas,
> OK after our IM yesterday and a few more experiments I changed this to 
> use a fixed divisor 2*K (currently the default MinTLABSize) for setting 
> up the stripes. I think this is the simplest fix that preserves the 
> intent of the plab_sample_minimum_size() that was there but avoids being 
> susceptible to unusual MinTLABSize options.
>   http://cr.openjdk.java.net/~ecaspole/JDK-8078904/02/webrev/
> There is a mess with Young/OldPLABSize vs unusual MinTLABSize options 
> but I think we should tackle that as a separate bug, since that affects 
> both G1 and CMS.

  the problem I see with this change is that you can still make the
assert fail by setting the initial YoungPLABSize to < 2K (if I
understand the problem correctly).

E.g. running the VM with -XX:YoungPLABSize=100 -XX:+ConcMarkSweepGC -XX:
+CMSParallelInitialMarkEnabled -XX:+CMSParallelRemarkEnabled
-XX:-ResizePLAB -Xms32M -Xmx64m SpecApplication -s100 -g _209_db gives
the same error.

G1 *should* not be affected to that extent because it does not size data
structures according to MinTLABSize/YoungPLABSize afaik.

I do not see a way around fixing either the argument processing or
dropping the asserts as "benign" performance issue.

Also, the change should be accompanied by a test case (well, two now :))
that at show that this particular assert will not be triggered any more.


More information about the hotspot-gc-dev mailing list