RFR: JDK-8078904 : CMS: Assert failed: Ctl pt invariant
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.
> 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:
-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