RFR: 8232365: Implementation for JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector

Thomas Schatzl thomas.schatzl at oracle.com
Thu Oct 24 21:16:09 UTC 2019


Hi,

  some additional thoughts I had when looking through the change:

- BlockOffsetArray/BlockOffsetArrayContigSpace inheritance could be folded in a separate CR

Other minor removals that could be done here:

- GCStats::kind() / GCStats::Name enum / GCStats::average_promoted_in_bytes() / GCStats::padded_average_promoted_in_bytes() are unused.

- unused flags from gc_globals.hpp (I assume that there are more from globals.hpp that are now unused but it's daunting to go through all of them :)):

GCTaskTimeStampEntries (this one has been unused before the CMS change so start the deprecation/removal in a different RFE)

OldPLABWeight
ResizeOldPLAB
VerifyBlockOffsetArray

Made obsolete by this change.

- MarkWord::must_be_preserved_for_cms_scavenge() should be removed

Looks good otherwise.

Thomas

----- Original Message -----
From: leo.korinth at oracle.com
To: hotspot-dev at openjdk.java.net
Sent: Thursday, October 24, 2019 8:05:37 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna
Subject: Re: RFR: 8232365: Implementation for JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector

Fixes after suggestions from Coleen, David, Erik, Igor and Kim:

http://cr.openjdk.java.net/~lkorinth/8232365/00_01/ (incremental)
http://cr.openjdk.java.net/~lkorinth/8232365/01/ (full)

Thanks,
Leo

On 18/10/2019 10:20, Leo Korinth wrote:
> Hi,
> 
> Here is a patch that removes the CMS GC.
> 
> I have neither tested arm nor ppc; I hope my changes to those .ad files 
> are correct, if someone can test those architectures, that would be great.
> 
> Please take an extra look at 
> CollectedHeap::check_for_non_bad_heap_word_value, it was buggy before 
> (but never called), It is now called (and hopefully correct).
> 
> I have tried to remove most parts of CMS. I have not made it a goal to 
> remove all traces of CMS. I guess there are much more to cleanup, and 
> suggestions of more to remove are welcomed. I think more complicated 
> cleanups should be dealt with in separate enhancements.
> 
> Not fully addressed in code, but an issue that has to be dealt with, how 
> do I obsolete -Xconcgc and -Xnoconcgc? I believe the option should be 
> obsoleted, though I do not know if we have any precedence obsoleting -X 
> options.
> 
> My patch prints:
> 
> $ java -Xconcgc -jar Notepad.jar
> Java HotSpot(TM) 64-Bit Server VM warning: -Xconcgc uses UseConcMarkSweepGC
> 
> I guess that is not enough for being obsolete, compare with:
> 
> $ java -XX:UseConcMarkSweepGC -jar Notepad.jar
> Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option 
> UseConcMarkSweepGC; support was removed in 14.0
> 
> Bug:
>    https://bugs.openjdk.java.net/browse/JDK-8232365
> 
> Webrev:
>    http://cr.openjdk.java.net/~lkorinth/8232365/00
> 
> Testing:
>    tier 1-5.
> 
> Thanks,
> Leo


More information about the hotspot-dev mailing list