Skip to content

Commit af9df26

Browse files
author
Suchita Chaturvedi
committed
7201: JdkAttributes.OS_SWITCH_RATE does not work consistently across JFRs from different JDK versions.
Reviewed-by: hirt
1 parent d708be3 commit af9df26

File tree

5 files changed

+16
-3
lines changed

5 files changed

+16
-3
lines changed

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/jdk/JdkAttributes.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,8 +1146,7 @@ public String getMember(U i) {
11461146
public static final IAttribute<IMCThread> MONITOR_PREVIOUS_OWNER = attr("previousOwner", //$NON-NLS-1$
11471147
Messages.getString(Messages.ATTR_MONITOR_PREVIOUS_OWNER), THREAD);
11481148

1149-
public static final IAttribute<IQuantity> OS_SWITCH_RATE = attr("switchRate", //$NON-NLS-1$
1150-
Messages.getString(Messages.ATTR_OS_SWITCH_RATE), NUMBER);
1149+
public static IAttribute<IQuantity> OS_SWITCH_RATE;
11511150
public static final IAttribute<String> REFERENCE_STATISTICS_TYPE = attr("type", //$NON-NLS-1$
11521151
Messages.getString(Messages.ATTR_REFERENCE_STATISTICS_TYPE), PLAIN_TEXT);
11531152
public static final IAttribute<IQuantity> REFERENCE_STATISTICS_COUNT = attr("count", //$NON-NLS-1$

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/parser/synthetic/Messages.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class Messages {
4848
public static final String SyntheticAttributeExtension_EXECUTION_SAMPLES_STACKTRACE = "SyntheticAttributeExtension_EXECUTION_SAMPLES_STACKTRACE"; //$NON-NLS-1$
4949
public static final String SyntheticAttributeExtension_EXECUTION_SAMPLES_THREAD = "SyntheticAttributeExtension_EXECUTION_SAMPLES_THREAD"; //$NON-NLS-1$
5050
public static final String SyntheticAttributeExtension_REC_SETTING_EVENT_ID_ATTRIBUTE = "SyntheticAttributeExtension_REC_SETTING_EVENT_ID_ATTRIBUTE"; //$NON-NLS-1$
51+
public static final String SyntheticAttributeExtension_ATTR_OS_SWITCH_RATE = "SyntheticAttributeExtension_ATTR_OS_SWITCH_RATE"; //$NON-NLS-1$
5152

5253
private Messages() {
5354
}

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/parser/synthetic/OracleJdkTypeIDsPre11.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public final class OracleJdkTypeIDsPre11 {
178178
private final static String VM_OPERATIONS = JVM_EVENT_ID_ROOT + "vm/runtime/execute_vm_operation";
179179

180180
private final static String THREAD_STATISTICS = JVM_EVENT_ID_ROOT + "java/statistics/threads";
181-
private final static String CONTEXT_SWITCH_RATE = JVM_EVENT_ID_ROOT + "os/processor/context_switch_rate";
181+
final static String CONTEXT_SWITCH_RATE = JVM_EVENT_ID_ROOT + "os/processor/context_switch_rate";
182182

183183
private final static String COMPILER_CONFIG = JVM_EVENT_ID_ROOT + "vm/compiler/config";
184184
private final static String CODE_CACHE_CONFIG = JVM_EVENT_ID_ROOT + "vm/code_cache/config";

core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/parser/synthetic/SyntheticAttributeExtension.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public class SyntheticAttributeExtension implements IParserExtension {
7272
static final IAttribute<LabeledIdentifier> REC_SETTING_EVENT_ID_ATTRIBUTE = attr("id", //$NON-NLS-1$
7373
Messages.getString(Messages.SyntheticAttributeExtension_REC_SETTING_EVENT_ID_ATTRIBUTE),
7474
UnitLookup.LABELED_IDENTIFIER);
75+
private static final String SWITCH_RATE = "switchRate";
7576

7677
@Override
7778
public IEventSinkFactory getEventSinkFactory(final IEventSinkFactory sf) {
@@ -187,6 +188,17 @@ public String getValueInterpretation(String eventTypeId, String fieldId) {
187188
|| OracleJdkTypeIDsPre11.JDK9_RECORDING_SETTING.equals(eventTypeId)
188189
|| JdkTypeIDs.RECORDING_SETTING.equals(eventTypeId))) {
189190
return JfrInternalConstants.TYPE_IDENTIFIER_VALUE_INTERPRETATION;
191+
} else if (SWITCH_RATE.equals(fieldId)) {
192+
if (eventTypeId.equalsIgnoreCase("jdk.ThreadContextSwitchRate")) {
193+
JdkAttributes.OS_SWITCH_RATE = attr("switchRate", //$NON-NLS-1$
194+
Messages.getString(Messages.SyntheticAttributeExtension_ATTR_OS_SWITCH_RATE),
195+
UnitLookup.FREQUENCY);
196+
197+
} else if (OracleJdkTypeIDsPre11.CONTEXT_SWITCH_RATE.equals(eventTypeId)) {
198+
JdkAttributes.OS_SWITCH_RATE = attr("switchRate", //$NON-NLS-1$
199+
Messages.getString(Messages.SyntheticAttributeExtension_ATTR_OS_SWITCH_RATE),
200+
UnitLookup.NUMBER);
201+
}
190202
}
191203
return null;
192204
}

core/org.openjdk.jmc.flightrecorder/src/main/resources/org/openjdk/jmc/flightrecorder/parser/synthetic/messages.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ SyntheticAttributeExtension_ALLOC_STATISTICS_THREAD=Thread
3838
SyntheticAttributeExtension_EXECUTION_SAMPLES_STACKTRACE=Stack Trace
3939
SyntheticAttributeExtension_EXECUTION_SAMPLES_THREAD=Sampled Thread
4040
SyntheticAttributeExtension_REC_SETTING_EVENT_ID_ATTRIBUTE=Event Id
41+
SyntheticAttributeExtension_ATTR_OS_SWITCH_RATE=Context Switch Rate

0 commit comments

Comments
 (0)