JMC-5703: HighGcRule should report extra needed event types
Ken Dobson
kdobson at redhat.com
Fri Nov 9 17:07:36 UTC 2018
Sorry about that, this is a new patch adding the fix for the test.
diff -r 4629e44fd8ea
core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
---
a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
Thu Nov 08 12:45:05 2018 +0100
+++
b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
Fri Nov 09 11:23:30 2018 -0500
@@ -86,7 +86,8 @@
String longMessage = message + " " +
Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG); //$NON-NLS-1$
if (!RulesToolkit.isEventsEnabled(items,
JdkTypeIDs.ALLOC_INSIDE_TLAB, JdkTypeIDs.ALLOC_OUTSIDE_TLAB)) {
longMessage = longMessage + "<p>" //$NON-NLS-1$
- +
Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED);
+ +
RulesToolkit.getEnabledEventTypesRecommendation(items,
+ JdkTypeIDs.ALLOC_INSIDE_TLAB,
JdkTypeIDs.ALLOC_OUTSIDE_TLAB);
}
return new Result(this, score, message, longMessage,
JdkQueries.GC_PAUSE);
}
diff -r 4629e44fd8ea
core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
---
a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
Thu Nov 08 12:45:05 2018 +0100
+++
b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
Fri Nov 09 11:23:30 2018 -0500
@@ -302,7 +302,6 @@
public static final String HighGcRuleFactory_RULE_NAME =
"HighGcRuleFactory_RULE_NAME"; //$NON-NLS-1$
public static final String HighGcRuleFactory_TEXT_INFO =
"HighGcRuleFactory_TEXT_INFO"; //$NON-NLS-1$
public static final String HighGcRuleFactory_TEXT_INFO_LONG =
"HighGcRuleFactory_TEXT_INFO_LONG"; //$NON-NLS-1$
- public static final String
HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED =
"HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED"; //$NON-NLS-1$
public static final String HighGcRuleFactory_TEXT_OK =
"HighGcRuleFactory_TEXT_OK"; //$NON-NLS-1$
public static final String HighJvmCpuRule_AGGR_MAX_ENDTIME =
"HighJvmCpuRule_AGGR_MAX_ENDTIME"; //$NON-NLS-1$
public static final String HighJvmCpuRule_AGGR_MIN_ENDTIME =
"HighJvmCpuRule_AGGR_MIN_ENDTIME"; //$NON-NLS-1$
diff -r 4629e44fd8ea
core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.properties
---
a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.properties
Thu Nov 08 12:45:05 2018 +0100
+++
b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/org/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.properties
Fri Nov 09 11:23:30 2018 -0500
@@ -325,7 +325,6 @@
# {0} is a time period, {1} is a time stamp, {2} is a percentage
HighGcRuleFactory_TEXT_INFO=The JVM was paused for {2} of the time during
{0} starting at {1}.
HighGcRuleFactory_TEXT_INFO_LONG=The time spent performing garbage
collection may be reduced by increasing the heap size or by trying to
reduce allocation.
-HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED=Some allocation events
were disabled in this recording. Enable them to help with troubleshooting
this problem.
HighGcRuleFactory_TEXT_OK=The runtime did not spend much time performing
garbage collections.
HighJvmCpuRule_AGGR_MAX_ENDTIME=Max End Time
HighJvmCpuRule_AGGR_MIN_ENDTIME=Min End Time
diff -r 4629e44fd8ea
core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/src/test/resources/baseline/JfrRuleBaseline.xml
---
a/core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/src/test/resources/baseline/JfrRuleBaseline.xml
Thu Nov 08 12:45:05 2018 +0100
+++
b/core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/src/test/resources/baseline/JfrRuleBaseline.xml
Fri Nov 09 11:23:30 2018 -0500
@@ -2619,7 +2619,7 @@
<severity>OK</severity>
<score>2.054924803137792</score>
<shortDescription>The JVM was paused for 100 % of the time during 9.017 ms
starting at 4/24/18 10:08:53 AM.</shortDescription>
-<longDescription>The JVM was paused for 100 % of the time during 9.017 ms
starting at 4/24/18 10:08:53 AM. The time spent performing garbage
collection may be reduced by increasing the heap size or by trying to
reduce allocation.<p>Some allocation events were disabled in this
recording. Enable them to help with troubleshooting this
problem.</longDescription>
+<longDescription>The JVM was paused for 100 % of the time during 9.017 ms
starting at 4/24/18 10:08:53 AM. The time spent performing garbage
collection may be reduced by increasing the heap size or by trying to
reduce allocation.<p>To improve rule accuracy and/or get more details
for further investigation, it is recommended to enable the following event
types: 'Allocation in new TLAB', 'Allocation outside
TLAB'.</longDescription>
</rule>
<rule>
<id>HighJvmCpu</id>
On Fri, Nov 9, 2018 at 10:25 AM Mario Torre <neugens at redhat.com> wrote:
> On Tue, 2018-11-06 at 17:57 +0100, Marcus Hirt wrote:
> > Excellent! Please work with Mario to sponsor it!
>
> I applied this patch but I get this wehn building:
>
>
> flightrecorder.rules.jdk.test ... FAILURE [ 8.283 s]
> BUILD FAILURE
>
> Test set:
> org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr
> ---------------------------------------------------------------------
> ----------
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 7.66 s
> <<< FAILURE! - in
> org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr
> verifyAllResults(org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRule
> sWithJfr) Time elapsed: 6.5 s <<< FAILURE!
> java.lang.AssertionError:
>
>
> Report: "stringdedup_enabled_jdk9.jfr",
> Rule: "HighGc".
> Description mismatch: "The JVM was paused for 100 % of the time
> during 9.017 ms starting at 4/24/18 10:08:53 AM. The time spent
> performing garbage collection may be reduced by increasing the heap
> size or by trying to reduce allocation.<p>To improve rule accuracy
> and/or get more details for further investigation, it is recommended to
> enable the following event types: 'Allocation in new TLAB', 'Allocation
> outside TLAB'." was not equal to "The JVM was paused for 100 % of the
> time during 9.017 ms starting at 4/24/18 10:08:53 AM. The time spent
> performing garbage collection may be reduced by increasing the heap
> size or by trying to reduce allocation.<p>Some allocation events were
> disabled in this recording. Enable them to help with troubleshooting
> this problem.".
> at
> org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr.verifyRu
> leResults(TestRulesWithJfr.java:159)
> at
> org.openjdk.jmc.flightrecorder.test.rules.jdk.TestRulesWithJfr.verifyAl
> lResults(TestRulesWithJfr.java:132)
>
> Cheers,
> Mario
>
> >
> > Kind regards,
> >
> > Marcus
> >
> >
> >
> > From: Ken Dobson <kdobson at redhat.com>
> > Date: Tuesday, 6 November 2018 at 17:55
> > To: Marcus Hirt <marcus.hirt at oracle.com>
> > Cc: <jmc-dev at openjdk.java.net>
> > Subject: Re: JMC-5703: HighGcRule should report extra needed event
> > types
> >
> >
> >
> > Here's the updated patch, there doesn't appear to be any translations
> > for it.
> >
> >
> >
> > Ken
> >
> >
> >
> > diff -r b3a23786ef23
> > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openj
> > dk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
> > ---
> > a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> > njdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java Wed Oct
> > 10 16:43:35 2018 -0400
> > +++
> > b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> > njdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java Tue Nov
> > 06 11:49:43 2018 -0500
> > @@ -86,7 +86,8 @@
> > String longMessage = message + " " +
> > Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG);
> > //$NON-NLS-1$
> > if (!RulesToolkit.isEventsEnabled(items,
> > JdkTypeIDs.ALLOC_INSIDE_TLAB, JdkTypeIDs.ALLOC_OUTSIDE_TLAB)) {
> > longMessage = longMessage + "<p>" //$NON-NLS-1$
> > - +
> > Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DI
> > SABLED);
> > + +
> > RulesToolkit.getEnabledEventTypesRecommendation(items,
> > + JdkTypeIDs.ALLOC_INSIDE_TLAB,
> > JdkTypeIDs.ALLOC_OUTSIDE_TLAB);
> > }
> > return new Result(this, score, message, longMessage,
> > JdkQueries.GC_PAUSE);
> > }
> > diff -r b3a23786ef23
> > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openj
> > dk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
> > ---
> > a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> > njdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
> > Wed Oct 10 16:43:35 2018 -0400
> > +++
> > b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/ope
> > njdk/jmc/flightrecorder/rules/jdk/messages/internal/Messages.java
> > Tue Nov 06 11:49:43 2018 -0500
> > @@ -298,7 +298,6 @@
> > public static final String HighGcRuleFactory_RULE_NAME =
> > "HighGcRuleFactory_RULE_NAME"; //$NON-NLS-1$
> > public static final String HighGcRuleFactory_TEXT_INFO =
> > "HighGcRuleFactory_TEXT_INFO"; //$NON-NLS-1$
> > public static final String HighGcRuleFactory_TEXT_INFO_LONG =
> > "HighGcRuleFactory_TEXT_INFO_LONG"; //$NON-NLS-1$
> > - public static final String
> > HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED =
> > "HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED"; //$NON-NLS-1$
> > public static final String HighGcRuleFactory_TEXT_OK =
> > "HighGcRuleFactory_TEXT_OK"; //$NON-NLS-1$
> > public static final String HighJvmCpuRule_AGGR_MAX_ENDTIME =
> > "HighJvmCpuRule_AGGR_MAX_ENDTIME"; //$NON-NLS-1$
> > public static final String HighJvmCpuRule_AGGR_MIN_ENDTIME =
> > "HighJvmCpuRule_AGGR_MIN_ENDTIME"; //$NON-NLS-1$
> > diff -r b3a23786ef23
> > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/org/
> > openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.prope
> > rties
> > ---
> > a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/or
> > g/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.pro
> > perties Wed Oct 10 16:43:35 2018 -0400
> > +++
> > b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/resources/or
> > g/openjdk/jmc/flightrecorder/rules/jdk/messages/internal/messages.pro
> > perties Tue Nov 06 11:49:43 2018 -0500
> > @@ -321,7 +321,6 @@
> > # {0} is a time period, {1} is a time stamp, {2} is a percentage
> > HighGcRuleFactory_TEXT_INFO=The JVM was paused for {2} of the time
> > during {0} starting at {1}.
> > HighGcRuleFactory_TEXT_INFO_LONG=The time spent performing garbage
> > collection may be reduced by increasing the heap size or by trying to
> > reduce allocation.
> > -HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED=Some allocation
> > events were disabled in this recording. Enable them to help with
> > troubleshooting this problem.
> > HighGcRuleFactory_TEXT_OK=The runtime did not spend much time
> > performing garbage collections.
> > HighJvmCpuRule_AGGR_MAX_ENDTIME=Max End Time
> > HighJvmCpuRule_AGGR_MIN_ENDTIME=Min End Time
> >
> >
> >
> > On Tue, Nov 6, 2018 at 11:43 AM Marcus Hirt <marcus.hirt at oracle.com>
> > wrote:
> >
> > Hi Ken,
> >
> > Yes, if it is no longer used, please go ahead and remove both the
> > constant and
> > the entry in the associated properties files (might as well remove it
> > from the
> > translated files too).
> >
> > Kind regards,
> > Marcus
> >
> > On 2018-11-06, 17:08, "jmc-dev on behalf of Ken Dobson" <
> > jmc-dev-bounces at openjdk.java.net on behalf of kdobson at redhat.com>
> > wrote:
> >
> > Hi all,
> >
> > This is a small patch to make the highGcRule consistent with the
> > GcFreedRatioRule when reporting extra needed event types.
> > Should I remove HighGcRuleFactory_TEXT_INFO_LONG_ALLOC_DISABLED
> > from
> > Messages.java given it is no longer used?
> >
> > Thanks,
> >
> > Ken Dobson
> >
> > diff -r b3a23786ef23
> > core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/o
> > penjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
> > ---
> > a/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org
> > /openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
> > Wed Oct 10 16:43:35 2018 -0400
> > +++
> > b/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org
> > /openjdk/jmc/flightrecorder/rules/jdk/memory/HighGcRule.java
> > Tue Nov 06 10:33:20 2018 -0500
> > @@ -84,9 +84,11 @@
> > String message =
> > MessageFormat.format(Messages.getString(Messages.HighGcRuleFactor
> > y_TEXT_INFO),
> > duration,
> > startTime,
> > pausePercent.displayUsing(IDisplayable.AUTO));
> > String longMessage = message + " " +
> > Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG);
> > //$NON-NLS-1$
> > if (!RulesToolkit.isEventsEnabled(items,
> > JdkTypeIDs.ALLOC_INSIDE_TLAB, JdkTypeIDs.ALLOC_OUTSIDE_TLAB)) {
> > longMessage = longMessage + "<p>" //$NON-NLS-1$
> > - +
> > Messages.getString(Messages.HighGcRuleFactory_TEXT_INFO_LONG_ALLO
> > C_DISABLED);
> > + +
> > RulesToolkit.getEnabledEventTypesRecommendation(items,
> > + JdkTypeIDs.ALLOC_INSIDE_TLAB,
> > JdkTypeIDs.ALLOC_OUTSIDE_TLAB);
> > }
> > return new Result(this, score, message, longMessage,
> > JdkQueries.GC_PAUSE);
> > }
> >
> >
> >
> >
> --
> Mario Torre
> Associate Manager, Software Engineering
> Red Hat GmbH <https://www.redhat.com>
> 9704 A60C B4BE A8B8 0F30 9205 5D7E 4952 3F65 7898
>
>
More information about the jmc-dev
mailing list