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

Eric Caspole eric.caspole at oracle.com
Wed May 13 19:17:00 UTC 2015


Hi everybody,
Could I have a review for fixing JDK-8078904. That is an assert in CMS 
where the setup of the survivor chunk array used for setting up the CMS 
rescan did not completely scan all the per-thread chunk arrays. This 
would happen if the TLAB size is set very large on the cmd line, for 
example, because of the way the survivor chunk array structures were set 
up. In product builds this would result in uneven distribution of 
parallel work where the last task might get 100x as much region to scan 
as the others.

The size of those PLABs depends on YoungPLABSize so I changed the setup 
code to only consider the YoungPLABSize when creating the survivor chunk 
array. I can see with this change there is even distribution of parallel 
work in the rescan tasks with various YoungPLABSize and ParallelGCThread 
count.

https://bugs.openjdk.java.net/browse/JDK-8078904

http://cr.openjdk.java.net/~ecaspole/JDK-8078904/00/webrev/

Thanks,
Eric



More information about the hotspot-gc-dev mailing list