RFR: 8202591: Remove usage of CMSEdenChunksRecordAlways in defNewGeneration.cpp
Stefan Karlsson
stefan.karlsson at oracle.com
Fri May 4 08:58:22 UTC 2018
Hi all,
Please review this patch to remove the usage of
CMSEdenChunksRecordAlways in defNewGeneration.cpp.
http://cr.openjdk.java.net/~stefank/8202591/webrev.01/
https://bugs.openjdk.java.net/browse/JDK-8202591
This is a step towards getting rid of CMS dependent code from
defNewGeneration.cpp.
DefNewGeneration::allocate and DefNewGeneration::par_allocate both have
this code:
#if INCLUDE_ALL_GCS
if (CMSEdenChunksRecordAlways && _old_gen != NULL) {
if (_old_gen != NULL) {
_old_gen->sample_eden_chunk();
}
#endif
_old_gen is TenuredGeneration when running with Serial, which uses the
default sample_eden_chunk() implementation in Generation:
virtual void sample_eden_chunk() {}
_old_gen is ConcurrentMarkSweepGeneration when running with CMS, which uses:
void sample_eden_chunk() {
//Delegate to collector
return collector()->sample_eden_chunk();
}
and this is the code in CMSCollector's sample_eden_chunk:
void CMSCollector::sample_eden_chunk() {
if (CMSEdenChunksRecordAlways && _eden_chunk_array != NULL) {
Note also that CMSEdenChunksRecordAlways is always true, even when we're
not running with CMS.
I propose that we get rid of the CMSEdenChunksRecordAlways check in
defNewGeneration.cpp.
Thanks,
StefanK
More information about the hotspot-gc-dev
mailing list