RFR: JDK-8072913: [REDO] GCCause should distinguish jcmd GC.run from System.gc()

Mikael Gerdin mikael.gerdin at oracle.com
Fri Feb 13 12:33:36 UTC 2015

Hi Yasumasa,

On 2015-02-11 15:02, Yasumasa Suenaga wrote:
> Hi all,
> I've committed JDK-8068589 to add new GCCause - Diagnostic Command.
> However, it has been backouted because test is failed [1] and it is not considered
> about concurrent GC: -XX:+ExplicitGCInvokesConcurrent [2].
> I've created patch for this enhancement.
> Could you review it?
> http://cr.openjdk.java.net/~ysuenaga/JDK-8072913/webrev.00/

I'd prefer if you could add a GCCause::is_system_gc_equivalent() which 
returns true for some set of GCCause enum values, such as 
_java_lang_system_gc and _dcmd_gc_run

Given that the documentation of the GC.run command is:
Call java.lang.System.gc().

Impact: Medium: Depends on Java heap size and content.

Syntax: GC.run"

I interpret the documentation that the GC is supposed to be (for all 
intents and purposes) equivalent to the application invoking System.gc().

This would also require updates to other places where we refer to the 
_java_lang_system_gc GCCause, such as UseAdaptiveSizePolicyWithSystemGC

A "grep" for _java_lang_system_gc should yield more places where updates 
may be necessary.


> I'm jdk9 committer, but I'm not employee at Oracle.
> So I need a Sponsor.
> Thanks,
> Yasumasa
> [1] http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2015-February/011957.html
> [2] http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2015-February/011962.html

More information about the hotspot-gc-dev mailing list