Skip to content

Commit a7215fb

Browse files
committed
vm: fixed review comments
Signed-off-by: philippe <beliasossim@gmail.com>
1 parent db56fb7 commit a7215fb

39 files changed

Lines changed: 1002 additions & 2794 deletions

analyses/org.eclipse.tracecompass.incubator.executioncomparison.core/src/org/eclipse/tracecompass/incubator/internal/executioncomparison/core/DifferentialSeqCallGraphAnalysis.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ public DifferentialSeqCallGraphAnalysis() {
9797
// Adding VM/Native analysis
9898
fCallStackAnalysisMap.put("org.eclipse.linuxtools.lttng2.kernel.tracetype", //$NON-NLS-1$
9999
"org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.vm.native.callstack"); //$NON-NLS-1$
100-
101-
/*fCallStackAnalysisMap.put("org.eclipse.tracecompass.tmf.core.experiment", //$NON-NLS-1$
102-
"org.eclipse.tracecompass.incubator.overhead.core.analysis.vm.native.callstack"); //$NON-NLS-1$*/
103100
}
104101

105102
/**

vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.core/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,6 @@ Export-Package: org.eclipse.tracecompass.incubator.internal.virtual.machine.anal
3636
org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.virtual.resources.handlers;x-internal:=true
3737
Import-Package: com.google.common.collect,
3838
com.google.common.hash,
39-
com.google.common.primitives
39+
com.google.common.primitives,
40+
org.eclipse.tracecompass.internal.lttng2.kernel.core.trace.layout
4041
Automatic-Module-Name: org.eclipse.tracecompass.incubator.virtual.machine.analysis.core

vm/org.eclipse.tracecompass.incubator.virtual.machine.analysis.core/plugin.xml

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,10 @@
6363
class="org.eclipse.tracecompass.tmf.core.trace.TmfTrace">
6464
</tracetype>
6565
</module>
66-
<module
67-
analysis_module="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.VMNativeComparisonAnalysis"
68-
id="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.vmcomparison"
69-
name="VM vs Native Comparison">
70-
<tracetype
71-
class="org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment">
72-
</tracetype>
73-
</module>
7466
<module
7567
analysis_module="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.VMNativeCallStackAnalysis"
7668
applies_experiment="true"
69+
automatic="false"
7770
id="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.vm.native.callstack"
7871
name="VM Native CallStack">
7972
<tracetype
@@ -84,12 +77,8 @@
8477
<extension
8578
point="org.eclipse.tracecompass.tmf.core.dataprovider">
8679
<dataProviderFactory
87-
class="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.core.data.provider.KvmExitDataProviderFactory"
80+
class="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.core.data.provider.KvmExitRateDataProviderFactory"
8881
id="org.eclipse.incubator.overhead.xy.rate.dataprovider">
8982
</dataProviderFactory>
90-
<dataProviderFactory
91-
class="org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis.core.data.provider.VMNativeDataProviderFactory"
92-
id="org.eclipse.incubator.overhead.timegraph.dataprovider">
93-
</dataProviderFactory>
9483
</extension>
9584
</plugin>
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2026 École Polytechnique de Montréal
3+
*
4+
* All rights reserved. This program and the accompanying materials are
5+
* made available under the terms of the Eclipse Public License 2.0 which
6+
* accompanies this distribution, and is available at
7+
* https://www.eclipse.org/legal/epl-2.0/
8+
*
9+
* SPDX-License-Identifier: EPL-2.0
10+
*******************************************************************************/
111
package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis;
212

313
import java.util.ArrayList;
414
import java.util.List;
5-
import java.io.File;
6-
import java.io.FileOutputStream;
7-
import java.io.IOException;
8-
import java.io.PrintWriter;
915

1016
/**
1117
* Represents a complete execution sequence in a virtualized environment:
1218
* <pre>
13-
* Guest → VM Exit → Hypervisor (Host) → VM Entry
19+
* VM ENTRY → GUEST → VM EXIT → Hypervisor (Host) → VM Entry
1420
* </pre>
1521
* <p>
1622
* This class aggregates events occurring in both the guest and the hypervisor,
@@ -24,23 +30,23 @@ public class ExecutionSequence {
2430
/**
2531
* List of events that occurred in the guest before the VM exit.
2632
*/
27-
private final List<FlowEvent> guestEvents = new ArrayList<>();
33+
private final List<FlowEvent> fGuestEvents = new ArrayList<>();
2834

2935
/**
3036
* List of events that occurred in the hypervisor (host)
3137
* between VM exit and VM entry.
3238
*/
33-
private final List<FlowEvent> hypervisorEvents = new ArrayList<>();
39+
private final List<FlowEvent> fHypervisorEvents = new ArrayList<>();
3440

3541
/**
3642
* Event representing the VM exit (transition from guest to host).
3743
*/
38-
private FlowEvent vmExit;
44+
private FlowEvent fVmExit;
3945

4046
/**
4147
* Event representing the VM entry (transition from host back to guest).
4248
*/
43-
private FlowEvent vmEntry;
49+
private FlowEvent fVmEntry;
4450

4551
/**
4652
* Adds an event to the guest event list.
@@ -49,7 +55,7 @@ public class ExecutionSequence {
4955
* the guest event to add
5056
*/
5157
void addGuestEvent(FlowEvent event) {
52-
guestEvents.add(event);
58+
fGuestEvents.add(event);
5359
}
5460

5561
/**
@@ -59,7 +65,7 @@ void addGuestEvent(FlowEvent event) {
5965
* the hypervisor event to add
6066
*/
6167
void addHypervisorEvent(FlowEvent event) {
62-
hypervisorEvents.add(event);
68+
fHypervisorEvents.add(event);
6369
}
6470

6571
/**
@@ -69,7 +75,7 @@ void addHypervisorEvent(FlowEvent event) {
6975
* the VM exit event
7076
*/
7177
void setVmExit(FlowEvent event) {
72-
this.vmExit = event;
78+
this.fVmExit = event;
7379
}
7480

7581
/**
@@ -79,79 +85,7 @@ void setVmExit(FlowEvent event) {
7985
* the VM entry event
8086
*/
8187
void setVmEntry(FlowEvent event) {
82-
this.vmEntry = event;
83-
}
84-
85-
/**
86-
* Prints the execution sequence for debugging purposes.
87-
* <p>
88-
* The sequence is printed both to the standard output and appended
89-
* to a file on disk.
90-
* </p>
91-
*
92-
* @throws IOException
93-
* if an I/O error occurs while writing to the file
94-
*/
95-
void printSequence() throws IOException {
96-
try (
97-
FileOutputStream fos = new FileOutputStream(
98-
new File("/home/philippe/Desktop/virtualized_flow.txt"), true); //$NON-NLS-1$
99-
PrintWriter writer = new PrintWriter(fos)) {
100-
101-
// Print guest events
102-
for (FlowEvent guestEvent : guestEvents) {
103-
KernelEventInfo evt = guestEvent.kernelEvent;
104-
System.out.printf(" [GUEST] %s (TID:%d, CPU:%d)\n", evt.name, evt.tid, evt.cpuid); //$NON-NLS-1$
105-
writer.printf(" [GUEST] %s (TID:%d, CPU:%d)\n", evt.name, evt.tid, evt.cpuid); //$NON-NLS-1$
106-
}
107-
108-
// Print VM exit
109-
if (vmExit != null) {
110-
System.out.printf(" ↓ [VM_EXIT] %s (CPU:%d, VCPU:%d, exit_reason:%s)\n", //$NON-NLS-1$
111-
vmExit.kernelEvent.name,
112-
vmExit.kernelEvent.cpuid,
113-
vmExit.kernelEvent.vcpuid,
114-
vmExit.kernelEvent.exitReason);
115-
116-
writer.printf(" ↓ [VM_EXIT] %s (CPU:%d, VCPU:%d, exit_reason:%s)\n", //$NON-NLS-1$
117-
vmExit.kernelEvent.name,
118-
vmExit.kernelEvent.cpuid,
119-
vmExit.kernelEvent.vcpuid,
120-
vmExit.kernelEvent.exitReason);
121-
}
122-
123-
// Print hypervisor events
124-
for (FlowEvent hypervisorEvent : hypervisorEvents) {
125-
KernelEventInfo evt = hypervisorEvent.kernelEvent;
126-
System.out.printf(" [HOST] %s (PID:%d, CPU:%d)\n", //$NON-NLS-1$
127-
evt.name, evt.pid, evt.cpuid);
128-
129-
writer.printf(" [HOST] %s (PID:%d, CPU:%d)\n", //$NON-NLS-1$
130-
evt.name, evt.pid, evt.cpuid);
131-
}
132-
133-
// Print VM entry
134-
if (vmEntry != null) {
135-
System.out.printf(" ↑ [VM_ENTRY] %s (CPU:%d, VCPU:%d)\n", //$NON-NLS-1$
136-
vmEntry.kernelEvent.name,
137-
vmEntry.kernelEvent.cpuid,
138-
vmEntry.kernelEvent.vcpuid);
139-
140-
writer.printf(" ↑ [VM_ENTRY] %s (CPU:%d, VCPU:%d)\n", //$NON-NLS-1$
141-
vmEntry.kernelEvent.name,
142-
vmEntry.kernelEvent.cpuid,
143-
vmEntry.kernelEvent.vcpuid);
144-
}
145-
146-
// Print timing summary
147-
if (!guestEvents.isEmpty() && vmEntry != null) {
148-
long totalDuration = vmEntry.kernelEvent.timestamp
149-
- guestEvents.get(0).kernelEvent.timestamp;
150-
151-
System.out.printf(" Total sequence duration: %d µs\n", totalDuration / 1000); //$NON-NLS-1$
152-
writer.printf(" Total sequence duration: %d µs\n", totalDuration / 1000); //$NON-NLS-1$
153-
}
154-
}
88+
this.fVmEntry = event;
15589
}
15690

15791
/**
@@ -168,6 +102,6 @@ void printSequence() throws IOException {
168102
* @return {@code true} if the sequence is complete, {@code false} otherwise
169103
*/
170104
boolean isComplete() {
171-
return !guestEvents.isEmpty() && vmExit != null && vmEntry != null;
105+
return !fGuestEvents.isEmpty() && fVmExit != null && fVmEntry != null;
172106
}
173107
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2026 École Polytechnique de Montréal
3+
*
4+
* All rights reserved. This program and the accompanying materials are
5+
* made available under the terms of the Eclipse Public License 2.0 which
6+
* accompanies this distribution, and is available at
7+
* https://www.eclipse.org/legal/epl-2.0/
8+
*
9+
* SPDX-License-Identifier: EPL-2.0
10+
*******************************************************************************/
111
package org.eclipse.tracecompass.incubator.internal.virtual.machine.analysis.core.flow.analysis;
212

313
import java.util.HashMap;
@@ -6,88 +16,89 @@
616

717
/**
818
* Mapping of Exit reason number to their text description
19+
*
920
* @author Francois Belias
1021
*/
1122
public class ExitReasonMap {
1223

13-
private static final Map<Integer, String> exitReasonMap = new HashMap<>();
24+
private static final Map<Integer, String> fExitReasonMap = new HashMap<>();
1425

1526
static {
1627
// VMX specific reasons
17-
exitReasonMap.put(0x80000000, "VMX_EXIT_REASONS_FAILED_VMENTRY"); //$NON-NLS-1$
18-
exitReasonMap.put(0x08000000, "VMX_EXIT_REASONS_SGX_ENCLAVE_MODE"); //$NON-NLS-1$
28+
fExitReasonMap.put(0x80000000, "VMX_EXIT_REASONS_FAILED_VMENTRY"); //$NON-NLS-1$
29+
fExitReasonMap.put(0x08000000, "VMX_EXIT_REASONS_SGX_ENCLAVE_MODE"); //$NON-NLS-1$
1930

2031
// General exit reasons
21-
exitReasonMap.put(0, "EXIT_REASON_EXCEPTION_NMI"); //$NON-NLS-1$
22-
exitReasonMap.put(1, "EXIT_REASON_EXTERNAL_INTERRUPT"); //$NON-NLS-1$
23-
exitReasonMap.put(2, "EXIT_REASON_TRIPLE_FAULT"); //$NON-NLS-1$
24-
exitReasonMap.put(3, "EXIT_REASON_INIT_SIGNAL"); //$NON-NLS-1$
25-
exitReasonMap.put(4, "EXIT_REASON_SIPI_SIGNAL"); //$NON-NLS-1$
32+
fExitReasonMap.put(0, "EXIT_REASON_EXCEPTION_NMI"); //$NON-NLS-1$
33+
fExitReasonMap.put(1, "EXIT_REASON_EXTERNAL_INTERRUPT"); //$NON-NLS-1$
34+
fExitReasonMap.put(2, "EXIT_REASON_TRIPLE_FAULT"); //$NON-NLS-1$
35+
fExitReasonMap.put(3, "EXIT_REASON_INIT_SIGNAL"); //$NON-NLS-1$
36+
fExitReasonMap.put(4, "EXIT_REASON_SIPI_SIGNAL"); //$NON-NLS-1$
2637

27-
exitReasonMap.put(7, "EXIT_REASON_INTERRUPT_WINDOW"); //$NON-NLS-1$
28-
exitReasonMap.put(8, "EXIT_REASON_NMI_WINDOW"); //$NON-NLS-1$
29-
exitReasonMap.put(9, "EXIT_REASON_TASK_SWITCH"); //$NON-NLS-1$
30-
exitReasonMap.put(10, "EXIT_REASON_CPUID"); //$NON-NLS-1$
31-
exitReasonMap.put(12, "EXIT_REASON_HLT"); //$NON-NLS-1$
32-
exitReasonMap.put(13, "EXIT_REASON_INVD"); //$NON-NLS-1$
33-
exitReasonMap.put(14, "EXIT_REASON_INVLPG"); //$NON-NLS-1$
34-
exitReasonMap.put(15, "EXIT_REASON_RDPMC"); //$NON-NLS-1$
35-
exitReasonMap.put(16, "EXIT_REASON_RDTSC"); //$NON-NLS-1$
36-
exitReasonMap.put(18, "EXIT_REASON_VMCALL"); //$NON-NLS-1$
37-
exitReasonMap.put(19, "EXIT_REASON_VMCLEAR"); //$NON-NLS-1$
38-
exitReasonMap.put(20, "EXIT_REASON_VMLAUNCH"); //$NON-NLS-1$
39-
exitReasonMap.put(21, "EXIT_REASON_VMPTRLD"); //$NON-NLS-1$
40-
exitReasonMap.put(22, "EXIT_REASON_VMPTRST"); //$NON-NLS-1$
41-
exitReasonMap.put(23, "EXIT_REASON_VMREAD"); //$NON-NLS-1$
42-
exitReasonMap.put(24, "EXIT_REASON_VMRESUME"); //$NON-NLS-1$
43-
exitReasonMap.put(25, "EXIT_REASON_VMWRITE"); //$NON-NLS-1$
44-
exitReasonMap.put(26, "EXIT_REASON_VMOFF"); //$NON-NLS-1$
45-
exitReasonMap.put(27, "EXIT_REASON_VMON"); //$NON-NLS-1$
46-
exitReasonMap.put(28, "EXIT_REASON_CR_ACCESS"); //$NON-NLS-1$
47-
exitReasonMap.put(29, "EXIT_REASON_DR_ACCESS"); //$NON-NLS-1$
48-
exitReasonMap.put(30, "EXIT_REASON_IO_INSTRUCTION"); //$NON-NLS-1$
49-
exitReasonMap.put(31, "EXIT_REASON_MSR_READ"); //$NON-NLS-1$
50-
exitReasonMap.put(32, "EXIT_REASON_MSR_WRITE"); //$NON-NLS-1$
51-
exitReasonMap.put(33, "EXIT_REASON_INVALID_STATE"); //$NON-NLS-1$
52-
exitReasonMap.put(34, "EXIT_REASON_MSR_LOAD_FAIL"); //$NON-NLS-1$
53-
exitReasonMap.put(36, "EXIT_REASON_MWAIT_INSTRUCTION"); //$NON-NLS-1$
54-
exitReasonMap.put(37, "EXIT_REASON_MONITOR_TRAP_FLAG"); //$NON-NLS-1$
55-
exitReasonMap.put(39, "EXIT_REASON_MONITOR_INSTRUCTION"); //$NON-NLS-1$
56-
exitReasonMap.put(40, "EXIT_REASON_PAUSE_INSTRUCTION"); //$NON-NLS-1$
57-
exitReasonMap.put(41, "EXIT_REASON_MCE_DURING_VMENTRY"); //$NON-NLS-1$
58-
exitReasonMap.put(43, "EXIT_REASON_TPR_BELOW_THRESHOLD"); //$NON-NLS-1$
59-
exitReasonMap.put(44, "EXIT_REASON_APIC_ACCESS"); //$NON-NLS-1$
60-
exitReasonMap.put(45, "EXIT_REASON_EOI_INDUCED"); //$NON-NLS-1$
61-
exitReasonMap.put(46, "EXIT_REASON_GDTR_IDTR"); //$NON-NLS-1$
62-
exitReasonMap.put(47, "EXIT_REASON_LDTR_TR"); //$NON-NLS-1$
63-
exitReasonMap.put(48, "EXIT_REASON_EPT_VIOLATION"); //$NON-NLS-1$
64-
exitReasonMap.put(49, "EXIT_REASON_EPT_MISCONFIG"); //$NON-NLS-1$
65-
exitReasonMap.put(50, "EXIT_REASON_INVEPT"); //$NON-NLS-1$
66-
exitReasonMap.put(51, "EXIT_REASON_RDTSCP"); //$NON-NLS-1$
67-
exitReasonMap.put(52, "EXIT_REASON_PREEMPTION_TIMER"); //$NON-NLS-1$
68-
exitReasonMap.put(53, "EXIT_REASON_INVVPID"); //$NON-NLS-1$
69-
exitReasonMap.put(54, "EXIT_REASON_WBINVD"); //$NON-NLS-1$
70-
exitReasonMap.put(55, "EXIT_REASON_XSETBV"); //$NON-NLS-1$
71-
exitReasonMap.put(56, "EXIT_REASON_APIC_WRITE"); //$NON-NLS-1$
72-
exitReasonMap.put(57, "EXIT_REASON_RDRAND"); //$NON-NLS-1$
73-
exitReasonMap.put(58, "EXIT_REASON_INVPCID"); //$NON-NLS-1$
74-
exitReasonMap.put(59, "EXIT_REASON_VMFUNC"); //$NON-NLS-1$
75-
exitReasonMap.put(60, "EXIT_REASON_ENCLS"); //$NON-NLS-1$
76-
exitReasonMap.put(61, "EXIT_REASON_RDSEED"); //$NON-NLS-1$
77-
exitReasonMap.put(62, "EXIT_REASON_PML_FULL"); //$NON-NLS-1$
78-
exitReasonMap.put(63, "EXIT_REASON_XSAVES"); //$NON-NLS-1$
79-
exitReasonMap.put(64, "EXIT_REASON_XRSTORS"); //$NON-NLS-1$
80-
exitReasonMap.put(67, "EXIT_REASON_UMWAIT"); //$NON-NLS-1$
81-
exitReasonMap.put(68, "EXIT_REASON_TPAUSE"); //$NON-NLS-1$
82-
exitReasonMap.put(74, "EXIT_REASON_BUS_LOCK"); //$NON-NLS-1$
83-
exitReasonMap.put(75, "EXIT_REASON_NOTIFY"); //$NON-NLS-1$
38+
fExitReasonMap.put(7, "EXIT_REASON_INTERRUPT_WINDOW"); //$NON-NLS-1$
39+
fExitReasonMap.put(8, "EXIT_REASON_NMI_WINDOW"); //$NON-NLS-1$
40+
fExitReasonMap.put(9, "EXIT_REASON_TASK_SWITCH"); //$NON-NLS-1$
41+
fExitReasonMap.put(10, "EXIT_REASON_CPUID"); //$NON-NLS-1$
42+
fExitReasonMap.put(12, "EXIT_REASON_HLT"); //$NON-NLS-1$
43+
fExitReasonMap.put(13, "EXIT_REASON_INVD"); //$NON-NLS-1$
44+
fExitReasonMap.put(14, "EXIT_REASON_INVLPG"); //$NON-NLS-1$
45+
fExitReasonMap.put(15, "EXIT_REASON_RDPMC"); //$NON-NLS-1$
46+
fExitReasonMap.put(16, "EXIT_REASON_RDTSC"); //$NON-NLS-1$
47+
fExitReasonMap.put(18, "EXIT_REASON_VMCALL"); //$NON-NLS-1$
48+
fExitReasonMap.put(19, "EXIT_REASON_VMCLEAR"); //$NON-NLS-1$
49+
fExitReasonMap.put(20, "EXIT_REASON_VMLAUNCH"); //$NON-NLS-1$
50+
fExitReasonMap.put(21, "EXIT_REASON_VMPTRLD"); //$NON-NLS-1$
51+
fExitReasonMap.put(22, "EXIT_REASON_VMPTRST"); //$NON-NLS-1$
52+
fExitReasonMap.put(23, "EXIT_REASON_VMREAD"); //$NON-NLS-1$
53+
fExitReasonMap.put(24, "EXIT_REASON_VMRESUME"); //$NON-NLS-1$
54+
fExitReasonMap.put(25, "EXIT_REASON_VMWRITE"); //$NON-NLS-1$
55+
fExitReasonMap.put(26, "EXIT_REASON_VMOFF"); //$NON-NLS-1$
56+
fExitReasonMap.put(27, "EXIT_REASON_VMON"); //$NON-NLS-1$
57+
fExitReasonMap.put(28, "EXIT_REASON_CR_ACCESS"); //$NON-NLS-1$
58+
fExitReasonMap.put(29, "EXIT_REASON_DR_ACCESS"); //$NON-NLS-1$
59+
fExitReasonMap.put(30, "EXIT_REASON_IO_INSTRUCTION"); //$NON-NLS-1$
60+
fExitReasonMap.put(31, "EXIT_REASON_MSR_READ"); //$NON-NLS-1$
61+
fExitReasonMap.put(32, "EXIT_REASON_MSR_WRITE"); //$NON-NLS-1$
62+
fExitReasonMap.put(33, "EXIT_REASON_INVALID_STATE"); //$NON-NLS-1$
63+
fExitReasonMap.put(34, "EXIT_REASON_MSR_LOAD_FAIL"); //$NON-NLS-1$
64+
fExitReasonMap.put(36, "EXIT_REASON_MWAIT_INSTRUCTION"); //$NON-NLS-1$
65+
fExitReasonMap.put(37, "EXIT_REASON_MONITOR_TRAP_FLAG"); //$NON-NLS-1$
66+
fExitReasonMap.put(39, "EXIT_REASON_MONITOR_INSTRUCTION"); //$NON-NLS-1$
67+
fExitReasonMap.put(40, "EXIT_REASON_PAUSE_INSTRUCTION"); //$NON-NLS-1$
68+
fExitReasonMap.put(41, "EXIT_REASON_MCE_DURING_VMENTRY"); //$NON-NLS-1$
69+
fExitReasonMap.put(43, "EXIT_REASON_TPR_BELOW_THRESHOLD"); //$NON-NLS-1$
70+
fExitReasonMap.put(44, "EXIT_REASON_APIC_ACCESS"); //$NON-NLS-1$
71+
fExitReasonMap.put(45, "EXIT_REASON_EOI_INDUCED"); //$NON-NLS-1$
72+
fExitReasonMap.put(46, "EXIT_REASON_GDTR_IDTR"); //$NON-NLS-1$
73+
fExitReasonMap.put(47, "EXIT_REASON_LDTR_TR"); //$NON-NLS-1$
74+
fExitReasonMap.put(48, "EXIT_REASON_EPT_VIOLATION"); //$NON-NLS-1$
75+
fExitReasonMap.put(49, "EXIT_REASON_EPT_MISCONFIG"); //$NON-NLS-1$
76+
fExitReasonMap.put(50, "EXIT_REASON_INVEPT"); //$NON-NLS-1$
77+
fExitReasonMap.put(51, "EXIT_REASON_RDTSCP"); //$NON-NLS-1$
78+
fExitReasonMap.put(52, "EXIT_REASON_PREEMPTION_TIMER"); //$NON-NLS-1$
79+
fExitReasonMap.put(53, "EXIT_REASON_INVVPID"); //$NON-NLS-1$
80+
fExitReasonMap.put(54, "EXIT_REASON_WBINVD"); //$NON-NLS-1$
81+
fExitReasonMap.put(55, "EXIT_REASON_XSETBV"); //$NON-NLS-1$
82+
fExitReasonMap.put(56, "EXIT_REASON_APIC_WRITE"); //$NON-NLS-1$
83+
fExitReasonMap.put(57, "EXIT_REASON_RDRAND"); //$NON-NLS-1$
84+
fExitReasonMap.put(58, "EXIT_REASON_INVPCID"); //$NON-NLS-1$
85+
fExitReasonMap.put(59, "EXIT_REASON_VMFUNC"); //$NON-NLS-1$
86+
fExitReasonMap.put(60, "EXIT_REASON_ENCLS"); //$NON-NLS-1$
87+
fExitReasonMap.put(61, "EXIT_REASON_RDSEED"); //$NON-NLS-1$
88+
fExitReasonMap.put(62, "EXIT_REASON_PML_FULL"); //$NON-NLS-1$
89+
fExitReasonMap.put(63, "EXIT_REASON_XSAVES"); //$NON-NLS-1$
90+
fExitReasonMap.put(64, "EXIT_REASON_XRSTORS"); //$NON-NLS-1$
91+
fExitReasonMap.put(67, "EXIT_REASON_UMWAIT"); //$NON-NLS-1$
92+
fExitReasonMap.put(68, "EXIT_REASON_TPAUSE"); //$NON-NLS-1$
93+
fExitReasonMap.put(74, "EXIT_REASON_BUS_LOCK"); //$NON-NLS-1$
94+
fExitReasonMap.put(75, "EXIT_REASON_NOTIFY"); //$NON-NLS-1$
8495
}
8596

8697
/**
8798
* @param code The code of the exit type
8899
* @return The text describing the exit type
89100
*/
90101
public static String getExitReasonName(int code) {
91-
return exitReasonMap.getOrDefault(code, "UNKNOWN_EXIT_REASON"); //$NON-NLS-1$
102+
return fExitReasonMap.getOrDefault(code, "UNKNOWN_EXIT_REASON"); //$NON-NLS-1$
92103
}
93104
}

0 commit comments

Comments
 (0)