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

David Holmes david.holmes at oracle.com
Fri Oct 18 09:20:07 UTC 2019


Hi Leo,

Picking up on one item ...

 > 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.

These flags (which are passed through from the launcher) are already 
marked as deprecated. So to "obsolete" them you just need to update the 
warning that gets issued (and otherwise delete them from the code). So 
you need to change this code in arguments.cpp to produce the appropriate 
obsoletion warning similar to what we issue for obsoleted -XX flags:

    // -Xconcgc
     } else if (match_option(option, "-Xconcgc")) {
       if (FLAG_SET_CMDLINE(UseConcMarkSweepGC, true) != JVMFlag::SUCCESS) {
         return JNI_EINVAL;
       }
       handle_extra_cms_flags("-Xconcgc uses UseConcMarkSweepGC");
     // -Xnoconcgc
     } else if (match_option(option, "-Xnoconcgc")) {
       if (FLAG_SET_CMDLINE(UseConcMarkSweepGC, false) != 
JVMFlag::SUCCESS) {
         return JNI_EINVAL;
       }
       handle_extra_cms_flags("-Xnoconcgc uses UseConcMarkSweepGC");

Let me know if you need more details.

Then file a follow up issue to remove these flags in the future. I don't 
know if you have a timeline for that yet.

Cheers,
David
-----


On 18/10/2019 6:20 pm, 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