xref: /linux/drivers/hv/mshv_debugfs_counters.c (revision d31558c077d8be422b65e97974017c030b4bd91a)
1*c23271b6SNuno Das Neves // SPDX-License-Identifier: GPL-2.0-only
2*c23271b6SNuno Das Neves /*
3*c23271b6SNuno Das Neves  * Copyright (c) 2026, Microsoft Corporation.
4*c23271b6SNuno Das Neves  *
5*c23271b6SNuno Das Neves  * Data for printing stats page counters via debugfs.
6*c23271b6SNuno Das Neves  *
7*c23271b6SNuno Das Neves  * Authors: Microsoft Linux virtualization team
8*c23271b6SNuno Das Neves  */
9*c23271b6SNuno Das Neves 
10*c23271b6SNuno Das Neves /*
11*c23271b6SNuno Das Neves  * For simplicity, this file is included directly in mshv_debugfs.c.
12*c23271b6SNuno Das Neves  * If these are ever needed elsewhere they should be compiled separately.
13*c23271b6SNuno Das Neves  * Ensure this file is not used twice by accident.
14*c23271b6SNuno Das Neves  */
15*c23271b6SNuno Das Neves #ifndef MSHV_DEBUGFS_C
16*c23271b6SNuno Das Neves #error "This file should only be included in mshv_debugfs.c"
17*c23271b6SNuno Das Neves #endif
18*c23271b6SNuno Das Neves 
19*c23271b6SNuno Das Neves /* HV_HYPERVISOR_COUNTER */
20*c23271b6SNuno Das Neves static char *hv_hypervisor_counters[] = {
21*c23271b6SNuno Das Neves 	[1] = "HvLogicalProcessors",
22*c23271b6SNuno Das Neves 	[2] = "HvPartitions",
23*c23271b6SNuno Das Neves 	[3] = "HvTotalPages",
24*c23271b6SNuno Das Neves 	[4] = "HvVirtualProcessors",
25*c23271b6SNuno Das Neves 	[5] = "HvMonitoredNotifications",
26*c23271b6SNuno Das Neves 	[6] = "HvModernStandbyEntries",
27*c23271b6SNuno Das Neves 	[7] = "HvPlatformIdleTransitions",
28*c23271b6SNuno Das Neves 	[8] = "HvHypervisorStartupCost",
29*c23271b6SNuno Das Neves 
30*c23271b6SNuno Das Neves 	[10] = "HvIOSpacePages",
31*c23271b6SNuno Das Neves 	[11] = "HvNonEssentialPagesForDump",
32*c23271b6SNuno Das Neves 	[12] = "HvSubsumedPages",
33*c23271b6SNuno Das Neves };
34*c23271b6SNuno Das Neves 
35*c23271b6SNuno Das Neves /* HV_CPU_COUNTER */
36*c23271b6SNuno Das Neves static char *hv_lp_counters[] = {
37*c23271b6SNuno Das Neves 	[1] = "LpGlobalTime",
38*c23271b6SNuno Das Neves 	[2] = "LpTotalRunTime",
39*c23271b6SNuno Das Neves 	[3] = "LpHypervisorRunTime",
40*c23271b6SNuno Das Neves 	[4] = "LpHardwareInterrupts",
41*c23271b6SNuno Das Neves 	[5] = "LpContextSwitches",
42*c23271b6SNuno Das Neves 	[6] = "LpInterProcessorInterrupts",
43*c23271b6SNuno Das Neves 	[7] = "LpSchedulerInterrupts",
44*c23271b6SNuno Das Neves 	[8] = "LpTimerInterrupts",
45*c23271b6SNuno Das Neves 	[9] = "LpInterProcessorInterruptsSent",
46*c23271b6SNuno Das Neves 	[10] = "LpProcessorHalts",
47*c23271b6SNuno Das Neves 	[11] = "LpMonitorTransitionCost",
48*c23271b6SNuno Das Neves 	[12] = "LpContextSwitchTime",
49*c23271b6SNuno Das Neves 	[13] = "LpC1TransitionsCount",
50*c23271b6SNuno Das Neves 	[14] = "LpC1RunTime",
51*c23271b6SNuno Das Neves 	[15] = "LpC2TransitionsCount",
52*c23271b6SNuno Das Neves 	[16] = "LpC2RunTime",
53*c23271b6SNuno Das Neves 	[17] = "LpC3TransitionsCount",
54*c23271b6SNuno Das Neves 	[18] = "LpC3RunTime",
55*c23271b6SNuno Das Neves 	[19] = "LpRootVpIndex",
56*c23271b6SNuno Das Neves 	[20] = "LpIdleSequenceNumber",
57*c23271b6SNuno Das Neves 	[21] = "LpGlobalTscCount",
58*c23271b6SNuno Das Neves 	[22] = "LpActiveTscCount",
59*c23271b6SNuno Das Neves 	[23] = "LpIdleAccumulation",
60*c23271b6SNuno Das Neves 	[24] = "LpReferenceCycleCount0",
61*c23271b6SNuno Das Neves 	[25] = "LpActualCycleCount0",
62*c23271b6SNuno Das Neves 	[26] = "LpReferenceCycleCount1",
63*c23271b6SNuno Das Neves 	[27] = "LpActualCycleCount1",
64*c23271b6SNuno Das Neves 	[28] = "LpProximityDomainId",
65*c23271b6SNuno Das Neves 	[29] = "LpPostedInterruptNotifications",
66*c23271b6SNuno Das Neves 	[30] = "LpBranchPredictorFlushes",
67*c23271b6SNuno Das Neves #if IS_ENABLED(CONFIG_X86_64)
68*c23271b6SNuno Das Neves 	[31] = "LpL1DataCacheFlushes",
69*c23271b6SNuno Das Neves 	[32] = "LpImmediateL1DataCacheFlushes",
70*c23271b6SNuno Das Neves 	[33] = "LpMbFlushes",
71*c23271b6SNuno Das Neves 	[34] = "LpCounterRefreshSequenceNumber",
72*c23271b6SNuno Das Neves 	[35] = "LpCounterRefreshReferenceTime",
73*c23271b6SNuno Das Neves 	[36] = "LpIdleAccumulationSnapshot",
74*c23271b6SNuno Das Neves 	[37] = "LpActiveTscCountSnapshot",
75*c23271b6SNuno Das Neves 	[38] = "LpHwpRequestContextSwitches",
76*c23271b6SNuno Das Neves 	[39] = "LpPlaceholder1",
77*c23271b6SNuno Das Neves 	[40] = "LpPlaceholder2",
78*c23271b6SNuno Das Neves 	[41] = "LpPlaceholder3",
79*c23271b6SNuno Das Neves 	[42] = "LpPlaceholder4",
80*c23271b6SNuno Das Neves 	[43] = "LpPlaceholder5",
81*c23271b6SNuno Das Neves 	[44] = "LpPlaceholder6",
82*c23271b6SNuno Das Neves 	[45] = "LpPlaceholder7",
83*c23271b6SNuno Das Neves 	[46] = "LpPlaceholder8",
84*c23271b6SNuno Das Neves 	[47] = "LpPlaceholder9",
85*c23271b6SNuno Das Neves 	[48] = "LpSchLocalRunListSize",
86*c23271b6SNuno Das Neves 	[49] = "LpReserveGroupId",
87*c23271b6SNuno Das Neves 	[50] = "LpRunningPriority",
88*c23271b6SNuno Das Neves 	[51] = "LpPerfmonInterruptCount",
89*c23271b6SNuno Das Neves #elif IS_ENABLED(CONFIG_ARM64)
90*c23271b6SNuno Das Neves 	[31] = "LpCounterRefreshSequenceNumber",
91*c23271b6SNuno Das Neves 	[32] = "LpCounterRefreshReferenceTime",
92*c23271b6SNuno Das Neves 	[33] = "LpIdleAccumulationSnapshot",
93*c23271b6SNuno Das Neves 	[34] = "LpActiveTscCountSnapshot",
94*c23271b6SNuno Das Neves 	[35] = "LpHwpRequestContextSwitches",
95*c23271b6SNuno Das Neves 	[36] = "LpPlaceholder2",
96*c23271b6SNuno Das Neves 	[37] = "LpPlaceholder3",
97*c23271b6SNuno Das Neves 	[38] = "LpPlaceholder4",
98*c23271b6SNuno Das Neves 	[39] = "LpPlaceholder5",
99*c23271b6SNuno Das Neves 	[40] = "LpPlaceholder6",
100*c23271b6SNuno Das Neves 	[41] = "LpPlaceholder7",
101*c23271b6SNuno Das Neves 	[42] = "LpPlaceholder8",
102*c23271b6SNuno Das Neves 	[43] = "LpPlaceholder9",
103*c23271b6SNuno Das Neves 	[44] = "LpSchLocalRunListSize",
104*c23271b6SNuno Das Neves 	[45] = "LpReserveGroupId",
105*c23271b6SNuno Das Neves 	[46] = "LpRunningPriority",
106*c23271b6SNuno Das Neves #endif
107*c23271b6SNuno Das Neves };
108*c23271b6SNuno Das Neves 
109*c23271b6SNuno Das Neves /* HV_PROCESS_COUNTER */
110*c23271b6SNuno Das Neves static char *hv_partition_counters[] = {
111*c23271b6SNuno Das Neves 	[1] = "PtVirtualProcessors",
112*c23271b6SNuno Das Neves 
113*c23271b6SNuno Das Neves 	[3] = "PtTlbSize",
114*c23271b6SNuno Das Neves 	[4] = "PtAddressSpaces",
115*c23271b6SNuno Das Neves 	[5] = "PtDepositedPages",
116*c23271b6SNuno Das Neves 	[6] = "PtGpaPages",
117*c23271b6SNuno Das Neves 	[7] = "PtGpaSpaceModifications",
118*c23271b6SNuno Das Neves 	[8] = "PtVirtualTlbFlushEntires",
119*c23271b6SNuno Das Neves 	[9] = "PtRecommendedTlbSize",
120*c23271b6SNuno Das Neves 	[10] = "PtGpaPages4K",
121*c23271b6SNuno Das Neves 	[11] = "PtGpaPages2M",
122*c23271b6SNuno Das Neves 	[12] = "PtGpaPages1G",
123*c23271b6SNuno Das Neves 	[13] = "PtGpaPages512G",
124*c23271b6SNuno Das Neves 	[14] = "PtDevicePages4K",
125*c23271b6SNuno Das Neves 	[15] = "PtDevicePages2M",
126*c23271b6SNuno Das Neves 	[16] = "PtDevicePages1G",
127*c23271b6SNuno Das Neves 	[17] = "PtDevicePages512G",
128*c23271b6SNuno Das Neves 	[18] = "PtAttachedDevices",
129*c23271b6SNuno Das Neves 	[19] = "PtDeviceInterruptMappings",
130*c23271b6SNuno Das Neves 	[20] = "PtIoTlbFlushes",
131*c23271b6SNuno Das Neves 	[21] = "PtIoTlbFlushCost",
132*c23271b6SNuno Das Neves 	[22] = "PtDeviceInterruptErrors",
133*c23271b6SNuno Das Neves 	[23] = "PtDeviceDmaErrors",
134*c23271b6SNuno Das Neves 	[24] = "PtDeviceInterruptThrottleEvents",
135*c23271b6SNuno Das Neves 	[25] = "PtSkippedTimerTicks",
136*c23271b6SNuno Das Neves 	[26] = "PtPartitionId",
137*c23271b6SNuno Das Neves #if IS_ENABLED(CONFIG_X86_64)
138*c23271b6SNuno Das Neves 	[27] = "PtNestedTlbSize",
139*c23271b6SNuno Das Neves 	[28] = "PtRecommendedNestedTlbSize",
140*c23271b6SNuno Das Neves 	[29] = "PtNestedTlbFreeListSize",
141*c23271b6SNuno Das Neves 	[30] = "PtNestedTlbTrimmedPages",
142*c23271b6SNuno Das Neves 	[31] = "PtPagesShattered",
143*c23271b6SNuno Das Neves 	[32] = "PtPagesRecombined",
144*c23271b6SNuno Das Neves 	[33] = "PtHwpRequestValue",
145*c23271b6SNuno Das Neves 	[34] = "PtAutoSuspendEnableTime",
146*c23271b6SNuno Das Neves 	[35] = "PtAutoSuspendTriggerTime",
147*c23271b6SNuno Das Neves 	[36] = "PtAutoSuspendDisableTime",
148*c23271b6SNuno Das Neves 	[37] = "PtPlaceholder1",
149*c23271b6SNuno Das Neves 	[38] = "PtPlaceholder2",
150*c23271b6SNuno Das Neves 	[39] = "PtPlaceholder3",
151*c23271b6SNuno Das Neves 	[40] = "PtPlaceholder4",
152*c23271b6SNuno Das Neves 	[41] = "PtPlaceholder5",
153*c23271b6SNuno Das Neves 	[42] = "PtPlaceholder6",
154*c23271b6SNuno Das Neves 	[43] = "PtPlaceholder7",
155*c23271b6SNuno Das Neves 	[44] = "PtPlaceholder8",
156*c23271b6SNuno Das Neves 	[45] = "PtHypervisorStateTransferGeneration",
157*c23271b6SNuno Das Neves 	[46] = "PtNumberofActiveChildPartitions",
158*c23271b6SNuno Das Neves #elif IS_ENABLED(CONFIG_ARM64)
159*c23271b6SNuno Das Neves 	[27] = "PtHwpRequestValue",
160*c23271b6SNuno Das Neves 	[28] = "PtAutoSuspendEnableTime",
161*c23271b6SNuno Das Neves 	[29] = "PtAutoSuspendTriggerTime",
162*c23271b6SNuno Das Neves 	[30] = "PtAutoSuspendDisableTime",
163*c23271b6SNuno Das Neves 	[31] = "PtPlaceholder1",
164*c23271b6SNuno Das Neves 	[32] = "PtPlaceholder2",
165*c23271b6SNuno Das Neves 	[33] = "PtPlaceholder3",
166*c23271b6SNuno Das Neves 	[34] = "PtPlaceholder4",
167*c23271b6SNuno Das Neves 	[35] = "PtPlaceholder5",
168*c23271b6SNuno Das Neves 	[36] = "PtPlaceholder6",
169*c23271b6SNuno Das Neves 	[37] = "PtPlaceholder7",
170*c23271b6SNuno Das Neves 	[38] = "PtPlaceholder8",
171*c23271b6SNuno Das Neves 	[39] = "PtHypervisorStateTransferGeneration",
172*c23271b6SNuno Das Neves 	[40] = "PtNumberofActiveChildPartitions",
173*c23271b6SNuno Das Neves #endif
174*c23271b6SNuno Das Neves };
175*c23271b6SNuno Das Neves 
176*c23271b6SNuno Das Neves /* HV_THREAD_COUNTER */
177*c23271b6SNuno Das Neves static char *hv_vp_counters[] = {
178*c23271b6SNuno Das Neves 	[1] = "VpTotalRunTime",
179*c23271b6SNuno Das Neves 	[2] = "VpHypervisorRunTime",
180*c23271b6SNuno Das Neves 	[3] = "VpRemoteNodeRunTime",
181*c23271b6SNuno Das Neves 	[4] = "VpNormalizedRunTime",
182*c23271b6SNuno Das Neves 	[5] = "VpIdealCpu",
183*c23271b6SNuno Das Neves 
184*c23271b6SNuno Das Neves 	[7] = "VpHypercallsCount",
185*c23271b6SNuno Das Neves 	[8] = "VpHypercallsTime",
186*c23271b6SNuno Das Neves #if IS_ENABLED(CONFIG_X86_64)
187*c23271b6SNuno Das Neves 	[9] = "VpPageInvalidationsCount",
188*c23271b6SNuno Das Neves 	[10] = "VpPageInvalidationsTime",
189*c23271b6SNuno Das Neves 	[11] = "VpControlRegisterAccessesCount",
190*c23271b6SNuno Das Neves 	[12] = "VpControlRegisterAccessesTime",
191*c23271b6SNuno Das Neves 	[13] = "VpIoInstructionsCount",
192*c23271b6SNuno Das Neves 	[14] = "VpIoInstructionsTime",
193*c23271b6SNuno Das Neves 	[15] = "VpHltInstructionsCount",
194*c23271b6SNuno Das Neves 	[16] = "VpHltInstructionsTime",
195*c23271b6SNuno Das Neves 	[17] = "VpMwaitInstructionsCount",
196*c23271b6SNuno Das Neves 	[18] = "VpMwaitInstructionsTime",
197*c23271b6SNuno Das Neves 	[19] = "VpCpuidInstructionsCount",
198*c23271b6SNuno Das Neves 	[20] = "VpCpuidInstructionsTime",
199*c23271b6SNuno Das Neves 	[21] = "VpMsrAccessesCount",
200*c23271b6SNuno Das Neves 	[22] = "VpMsrAccessesTime",
201*c23271b6SNuno Das Neves 	[23] = "VpOtherInterceptsCount",
202*c23271b6SNuno Das Neves 	[24] = "VpOtherInterceptsTime",
203*c23271b6SNuno Das Neves 	[25] = "VpExternalInterruptsCount",
204*c23271b6SNuno Das Neves 	[26] = "VpExternalInterruptsTime",
205*c23271b6SNuno Das Neves 	[27] = "VpPendingInterruptsCount",
206*c23271b6SNuno Das Neves 	[28] = "VpPendingInterruptsTime",
207*c23271b6SNuno Das Neves 	[29] = "VpEmulatedInstructionsCount",
208*c23271b6SNuno Das Neves 	[30] = "VpEmulatedInstructionsTime",
209*c23271b6SNuno Das Neves 	[31] = "VpDebugRegisterAccessesCount",
210*c23271b6SNuno Das Neves 	[32] = "VpDebugRegisterAccessesTime",
211*c23271b6SNuno Das Neves 	[33] = "VpPageFaultInterceptsCount",
212*c23271b6SNuno Das Neves 	[34] = "VpPageFaultInterceptsTime",
213*c23271b6SNuno Das Neves 	[35] = "VpGuestPageTableMaps",
214*c23271b6SNuno Das Neves 	[36] = "VpLargePageTlbFills",
215*c23271b6SNuno Das Neves 	[37] = "VpSmallPageTlbFills",
216*c23271b6SNuno Das Neves 	[38] = "VpReflectedGuestPageFaults",
217*c23271b6SNuno Das Neves 	[39] = "VpApicMmioAccesses",
218*c23271b6SNuno Das Neves 	[40] = "VpIoInterceptMessages",
219*c23271b6SNuno Das Neves 	[41] = "VpMemoryInterceptMessages",
220*c23271b6SNuno Das Neves 	[42] = "VpApicEoiAccesses",
221*c23271b6SNuno Das Neves 	[43] = "VpOtherMessages",
222*c23271b6SNuno Das Neves 	[44] = "VpPageTableAllocations",
223*c23271b6SNuno Das Neves 	[45] = "VpLogicalProcessorMigrations",
224*c23271b6SNuno Das Neves 	[46] = "VpAddressSpaceEvictions",
225*c23271b6SNuno Das Neves 	[47] = "VpAddressSpaceSwitches",
226*c23271b6SNuno Das Neves 	[48] = "VpAddressDomainFlushes",
227*c23271b6SNuno Das Neves 	[49] = "VpAddressSpaceFlushes",
228*c23271b6SNuno Das Neves 	[50] = "VpGlobalGvaRangeFlushes",
229*c23271b6SNuno Das Neves 	[51] = "VpLocalGvaRangeFlushes",
230*c23271b6SNuno Das Neves 	[52] = "VpPageTableEvictions",
231*c23271b6SNuno Das Neves 	[53] = "VpPageTableReclamations",
232*c23271b6SNuno Das Neves 	[54] = "VpPageTableResets",
233*c23271b6SNuno Das Neves 	[55] = "VpPageTableValidations",
234*c23271b6SNuno Das Neves 	[56] = "VpApicTprAccesses",
235*c23271b6SNuno Das Neves 	[57] = "VpPageTableWriteIntercepts",
236*c23271b6SNuno Das Neves 	[58] = "VpSyntheticInterrupts",
237*c23271b6SNuno Das Neves 	[59] = "VpVirtualInterrupts",
238*c23271b6SNuno Das Neves 	[60] = "VpApicIpisSent",
239*c23271b6SNuno Das Neves 	[61] = "VpApicSelfIpisSent",
240*c23271b6SNuno Das Neves 	[62] = "VpGpaSpaceHypercalls",
241*c23271b6SNuno Das Neves 	[63] = "VpLogicalProcessorHypercalls",
242*c23271b6SNuno Das Neves 	[64] = "VpLongSpinWaitHypercalls",
243*c23271b6SNuno Das Neves 	[65] = "VpOtherHypercalls",
244*c23271b6SNuno Das Neves 	[66] = "VpSyntheticInterruptHypercalls",
245*c23271b6SNuno Das Neves 	[67] = "VpVirtualInterruptHypercalls",
246*c23271b6SNuno Das Neves 	[68] = "VpVirtualMmuHypercalls",
247*c23271b6SNuno Das Neves 	[69] = "VpVirtualProcessorHypercalls",
248*c23271b6SNuno Das Neves 	[70] = "VpHardwareInterrupts",
249*c23271b6SNuno Das Neves 	[71] = "VpNestedPageFaultInterceptsCount",
250*c23271b6SNuno Das Neves 	[72] = "VpNestedPageFaultInterceptsTime",
251*c23271b6SNuno Das Neves 	[73] = "VpPageScans",
252*c23271b6SNuno Das Neves 	[74] = "VpLogicalProcessorDispatches",
253*c23271b6SNuno Das Neves 	[75] = "VpWaitingForCpuTime",
254*c23271b6SNuno Das Neves 	[76] = "VpExtendedHypercalls",
255*c23271b6SNuno Das Neves 	[77] = "VpExtendedHypercallInterceptMessages",
256*c23271b6SNuno Das Neves 	[78] = "VpMbecNestedPageTableSwitches",
257*c23271b6SNuno Das Neves 	[79] = "VpOtherReflectedGuestExceptions",
258*c23271b6SNuno Das Neves 	[80] = "VpGlobalIoTlbFlushes",
259*c23271b6SNuno Das Neves 	[81] = "VpGlobalIoTlbFlushCost",
260*c23271b6SNuno Das Neves 	[82] = "VpLocalIoTlbFlushes",
261*c23271b6SNuno Das Neves 	[83] = "VpLocalIoTlbFlushCost",
262*c23271b6SNuno Das Neves 	[84] = "VpHypercallsForwardedCount",
263*c23271b6SNuno Das Neves 	[85] = "VpHypercallsForwardingTime",
264*c23271b6SNuno Das Neves 	[86] = "VpPageInvalidationsForwardedCount",
265*c23271b6SNuno Das Neves 	[87] = "VpPageInvalidationsForwardingTime",
266*c23271b6SNuno Das Neves 	[88] = "VpControlRegisterAccessesForwardedCount",
267*c23271b6SNuno Das Neves 	[89] = "VpControlRegisterAccessesForwardingTime",
268*c23271b6SNuno Das Neves 	[90] = "VpIoInstructionsForwardedCount",
269*c23271b6SNuno Das Neves 	[91] = "VpIoInstructionsForwardingTime",
270*c23271b6SNuno Das Neves 	[92] = "VpHltInstructionsForwardedCount",
271*c23271b6SNuno Das Neves 	[93] = "VpHltInstructionsForwardingTime",
272*c23271b6SNuno Das Neves 	[94] = "VpMwaitInstructionsForwardedCount",
273*c23271b6SNuno Das Neves 	[95] = "VpMwaitInstructionsForwardingTime",
274*c23271b6SNuno Das Neves 	[96] = "VpCpuidInstructionsForwardedCount",
275*c23271b6SNuno Das Neves 	[97] = "VpCpuidInstructionsForwardingTime",
276*c23271b6SNuno Das Neves 	[98] = "VpMsrAccessesForwardedCount",
277*c23271b6SNuno Das Neves 	[99] = "VpMsrAccessesForwardingTime",
278*c23271b6SNuno Das Neves 	[100] = "VpOtherInterceptsForwardedCount",
279*c23271b6SNuno Das Neves 	[101] = "VpOtherInterceptsForwardingTime",
280*c23271b6SNuno Das Neves 	[102] = "VpExternalInterruptsForwardedCount",
281*c23271b6SNuno Das Neves 	[103] = "VpExternalInterruptsForwardingTime",
282*c23271b6SNuno Das Neves 	[104] = "VpPendingInterruptsForwardedCount",
283*c23271b6SNuno Das Neves 	[105] = "VpPendingInterruptsForwardingTime",
284*c23271b6SNuno Das Neves 	[106] = "VpEmulatedInstructionsForwardedCount",
285*c23271b6SNuno Das Neves 	[107] = "VpEmulatedInstructionsForwardingTime",
286*c23271b6SNuno Das Neves 	[108] = "VpDebugRegisterAccessesForwardedCount",
287*c23271b6SNuno Das Neves 	[109] = "VpDebugRegisterAccessesForwardingTime",
288*c23271b6SNuno Das Neves 	[110] = "VpPageFaultInterceptsForwardedCount",
289*c23271b6SNuno Das Neves 	[111] = "VpPageFaultInterceptsForwardingTime",
290*c23271b6SNuno Das Neves 	[112] = "VpVmclearEmulationCount",
291*c23271b6SNuno Das Neves 	[113] = "VpVmclearEmulationTime",
292*c23271b6SNuno Das Neves 	[114] = "VpVmptrldEmulationCount",
293*c23271b6SNuno Das Neves 	[115] = "VpVmptrldEmulationTime",
294*c23271b6SNuno Das Neves 	[116] = "VpVmptrstEmulationCount",
295*c23271b6SNuno Das Neves 	[117] = "VpVmptrstEmulationTime",
296*c23271b6SNuno Das Neves 	[118] = "VpVmreadEmulationCount",
297*c23271b6SNuno Das Neves 	[119] = "VpVmreadEmulationTime",
298*c23271b6SNuno Das Neves 	[120] = "VpVmwriteEmulationCount",
299*c23271b6SNuno Das Neves 	[121] = "VpVmwriteEmulationTime",
300*c23271b6SNuno Das Neves 	[122] = "VpVmxoffEmulationCount",
301*c23271b6SNuno Das Neves 	[123] = "VpVmxoffEmulationTime",
302*c23271b6SNuno Das Neves 	[124] = "VpVmxonEmulationCount",
303*c23271b6SNuno Das Neves 	[125] = "VpVmxonEmulationTime",
304*c23271b6SNuno Das Neves 	[126] = "VpNestedVMEntriesCount",
305*c23271b6SNuno Das Neves 	[127] = "VpNestedVMEntriesTime",
306*c23271b6SNuno Das Neves 	[128] = "VpNestedSLATSoftPageFaultsCount",
307*c23271b6SNuno Das Neves 	[129] = "VpNestedSLATSoftPageFaultsTime",
308*c23271b6SNuno Das Neves 	[130] = "VpNestedSLATHardPageFaultsCount",
309*c23271b6SNuno Das Neves 	[131] = "VpNestedSLATHardPageFaultsTime",
310*c23271b6SNuno Das Neves 	[132] = "VpInvEptAllContextEmulationCount",
311*c23271b6SNuno Das Neves 	[133] = "VpInvEptAllContextEmulationTime",
312*c23271b6SNuno Das Neves 	[134] = "VpInvEptSingleContextEmulationCount",
313*c23271b6SNuno Das Neves 	[135] = "VpInvEptSingleContextEmulationTime",
314*c23271b6SNuno Das Neves 	[136] = "VpInvVpidAllContextEmulationCount",
315*c23271b6SNuno Das Neves 	[137] = "VpInvVpidAllContextEmulationTime",
316*c23271b6SNuno Das Neves 	[138] = "VpInvVpidSingleContextEmulationCount",
317*c23271b6SNuno Das Neves 	[139] = "VpInvVpidSingleContextEmulationTime",
318*c23271b6SNuno Das Neves 	[140] = "VpInvVpidSingleAddressEmulationCount",
319*c23271b6SNuno Das Neves 	[141] = "VpInvVpidSingleAddressEmulationTime",
320*c23271b6SNuno Das Neves 	[142] = "VpNestedTlbPageTableReclamations",
321*c23271b6SNuno Das Neves 	[143] = "VpNestedTlbPageTableEvictions",
322*c23271b6SNuno Das Neves 	[144] = "VpFlushGuestPhysicalAddressSpaceHypercalls",
323*c23271b6SNuno Das Neves 	[145] = "VpFlushGuestPhysicalAddressListHypercalls",
324*c23271b6SNuno Das Neves 	[146] = "VpPostedInterruptNotifications",
325*c23271b6SNuno Das Neves 	[147] = "VpPostedInterruptScans",
326*c23271b6SNuno Das Neves 	[148] = "VpTotalCoreRunTime",
327*c23271b6SNuno Das Neves 	[149] = "VpMaximumRunTime",
328*c23271b6SNuno Das Neves 	[150] = "VpHwpRequestContextSwitches",
329*c23271b6SNuno Das Neves 	[151] = "VpWaitingForCpuTimeBucket0",
330*c23271b6SNuno Das Neves 	[152] = "VpWaitingForCpuTimeBucket1",
331*c23271b6SNuno Das Neves 	[153] = "VpWaitingForCpuTimeBucket2",
332*c23271b6SNuno Das Neves 	[154] = "VpWaitingForCpuTimeBucket3",
333*c23271b6SNuno Das Neves 	[155] = "VpWaitingForCpuTimeBucket4",
334*c23271b6SNuno Das Neves 	[156] = "VpWaitingForCpuTimeBucket5",
335*c23271b6SNuno Das Neves 	[157] = "VpWaitingForCpuTimeBucket6",
336*c23271b6SNuno Das Neves 	[158] = "VpVmloadEmulationCount",
337*c23271b6SNuno Das Neves 	[159] = "VpVmloadEmulationTime",
338*c23271b6SNuno Das Neves 	[160] = "VpVmsaveEmulationCount",
339*c23271b6SNuno Das Neves 	[161] = "VpVmsaveEmulationTime",
340*c23271b6SNuno Das Neves 	[162] = "VpGifInstructionEmulationCount",
341*c23271b6SNuno Das Neves 	[163] = "VpGifInstructionEmulationTime",
342*c23271b6SNuno Das Neves 	[164] = "VpEmulatedErrataSvmInstructions",
343*c23271b6SNuno Das Neves 	[165] = "VpPlaceholder1",
344*c23271b6SNuno Das Neves 	[166] = "VpPlaceholder2",
345*c23271b6SNuno Das Neves 	[167] = "VpPlaceholder3",
346*c23271b6SNuno Das Neves 	[168] = "VpPlaceholder4",
347*c23271b6SNuno Das Neves 	[169] = "VpPlaceholder5",
348*c23271b6SNuno Das Neves 	[170] = "VpPlaceholder6",
349*c23271b6SNuno Das Neves 	[171] = "VpPlaceholder7",
350*c23271b6SNuno Das Neves 	[172] = "VpPlaceholder8",
351*c23271b6SNuno Das Neves 	[173] = "VpContentionTime",
352*c23271b6SNuno Das Neves 	[174] = "VpWakeUpTime",
353*c23271b6SNuno Das Neves 	[175] = "VpSchedulingPriority",
354*c23271b6SNuno Das Neves 	[176] = "VpRdpmcInstructionsCount",
355*c23271b6SNuno Das Neves 	[177] = "VpRdpmcInstructionsTime",
356*c23271b6SNuno Das Neves 	[178] = "VpPerfmonPmuMsrAccessesCount",
357*c23271b6SNuno Das Neves 	[179] = "VpPerfmonLbrMsrAccessesCount",
358*c23271b6SNuno Das Neves 	[180] = "VpPerfmonIptMsrAccessesCount",
359*c23271b6SNuno Das Neves 	[181] = "VpPerfmonInterruptCount",
360*c23271b6SNuno Das Neves 	[182] = "VpVtl1DispatchCount",
361*c23271b6SNuno Das Neves 	[183] = "VpVtl2DispatchCount",
362*c23271b6SNuno Das Neves 	[184] = "VpVtl2DispatchBucket0",
363*c23271b6SNuno Das Neves 	[185] = "VpVtl2DispatchBucket1",
364*c23271b6SNuno Das Neves 	[186] = "VpVtl2DispatchBucket2",
365*c23271b6SNuno Das Neves 	[187] = "VpVtl2DispatchBucket3",
366*c23271b6SNuno Das Neves 	[188] = "VpVtl2DispatchBucket4",
367*c23271b6SNuno Das Neves 	[189] = "VpVtl2DispatchBucket5",
368*c23271b6SNuno Das Neves 	[190] = "VpVtl2DispatchBucket6",
369*c23271b6SNuno Das Neves 	[191] = "VpVtl1RunTime",
370*c23271b6SNuno Das Neves 	[192] = "VpVtl2RunTime",
371*c23271b6SNuno Das Neves 	[193] = "VpIommuHypercalls",
372*c23271b6SNuno Das Neves 	[194] = "VpCpuGroupHypercalls",
373*c23271b6SNuno Das Neves 	[195] = "VpVsmHypercalls",
374*c23271b6SNuno Das Neves 	[196] = "VpEventLogHypercalls",
375*c23271b6SNuno Das Neves 	[197] = "VpDeviceDomainHypercalls",
376*c23271b6SNuno Das Neves 	[198] = "VpDepositHypercalls",
377*c23271b6SNuno Das Neves 	[199] = "VpSvmHypercalls",
378*c23271b6SNuno Das Neves 	[200] = "VpBusLockAcquisitionCount",
379*c23271b6SNuno Das Neves 	[201] = "VpLoadAvg",
380*c23271b6SNuno Das Neves 	[202] = "VpRootDispatchThreadBlocked",
381*c23271b6SNuno Das Neves 	[203] = "VpIdleCpuTime",
382*c23271b6SNuno Das Neves 	[204] = "VpWaitingForCpuTimeBucket7",
383*c23271b6SNuno Das Neves 	[205] = "VpWaitingForCpuTimeBucket8",
384*c23271b6SNuno Das Neves 	[206] = "VpWaitingForCpuTimeBucket9",
385*c23271b6SNuno Das Neves 	[207] = "VpWaitingForCpuTimeBucket10",
386*c23271b6SNuno Das Neves 	[208] = "VpWaitingForCpuTimeBucket11",
387*c23271b6SNuno Das Neves 	[209] = "VpWaitingForCpuTimeBucket12",
388*c23271b6SNuno Das Neves 	[210] = "VpHierarchicalSuspendTime",
389*c23271b6SNuno Das Neves 	[211] = "VpExpressSchedulingAttempts",
390*c23271b6SNuno Das Neves 	[212] = "VpExpressSchedulingCount",
391*c23271b6SNuno Das Neves #elif IS_ENABLED(CONFIG_ARM64)
392*c23271b6SNuno Das Neves 	[9] = "VpSysRegAccessesCount",
393*c23271b6SNuno Das Neves 	[10] = "VpSysRegAccessesTime",
394*c23271b6SNuno Das Neves 	[11] = "VpSmcInstructionsCount",
395*c23271b6SNuno Das Neves 	[12] = "VpSmcInstructionsTime",
396*c23271b6SNuno Das Neves 	[13] = "VpOtherInterceptsCount",
397*c23271b6SNuno Das Neves 	[14] = "VpOtherInterceptsTime",
398*c23271b6SNuno Das Neves 	[15] = "VpExternalInterruptsCount",
399*c23271b6SNuno Das Neves 	[16] = "VpExternalInterruptsTime",
400*c23271b6SNuno Das Neves 	[17] = "VpPendingInterruptsCount",
401*c23271b6SNuno Das Neves 	[18] = "VpPendingInterruptsTime",
402*c23271b6SNuno Das Neves 	[19] = "VpGuestPageTableMaps",
403*c23271b6SNuno Das Neves 	[20] = "VpLargePageTlbFills",
404*c23271b6SNuno Das Neves 	[21] = "VpSmallPageTlbFills",
405*c23271b6SNuno Das Neves 	[22] = "VpReflectedGuestPageFaults",
406*c23271b6SNuno Das Neves 	[23] = "VpMemoryInterceptMessages",
407*c23271b6SNuno Das Neves 	[24] = "VpOtherMessages",
408*c23271b6SNuno Das Neves 	[25] = "VpLogicalProcessorMigrations",
409*c23271b6SNuno Das Neves 	[26] = "VpAddressDomainFlushes",
410*c23271b6SNuno Das Neves 	[27] = "VpAddressSpaceFlushes",
411*c23271b6SNuno Das Neves 	[28] = "VpSyntheticInterrupts",
412*c23271b6SNuno Das Neves 	[29] = "VpVirtualInterrupts",
413*c23271b6SNuno Das Neves 	[30] = "VpApicSelfIpisSent",
414*c23271b6SNuno Das Neves 	[31] = "VpGpaSpaceHypercalls",
415*c23271b6SNuno Das Neves 	[32] = "VpLogicalProcessorHypercalls",
416*c23271b6SNuno Das Neves 	[33] = "VpLongSpinWaitHypercalls",
417*c23271b6SNuno Das Neves 	[34] = "VpOtherHypercalls",
418*c23271b6SNuno Das Neves 	[35] = "VpSyntheticInterruptHypercalls",
419*c23271b6SNuno Das Neves 	[36] = "VpVirtualInterruptHypercalls",
420*c23271b6SNuno Das Neves 	[37] = "VpVirtualMmuHypercalls",
421*c23271b6SNuno Das Neves 	[38] = "VpVirtualProcessorHypercalls",
422*c23271b6SNuno Das Neves 	[39] = "VpHardwareInterrupts",
423*c23271b6SNuno Das Neves 	[40] = "VpNestedPageFaultInterceptsCount",
424*c23271b6SNuno Das Neves 	[41] = "VpNestedPageFaultInterceptsTime",
425*c23271b6SNuno Das Neves 	[42] = "VpLogicalProcessorDispatches",
426*c23271b6SNuno Das Neves 	[43] = "VpWaitingForCpuTime",
427*c23271b6SNuno Das Neves 	[44] = "VpExtendedHypercalls",
428*c23271b6SNuno Das Neves 	[45] = "VpExtendedHypercallInterceptMessages",
429*c23271b6SNuno Das Neves 	[46] = "VpMbecNestedPageTableSwitches",
430*c23271b6SNuno Das Neves 	[47] = "VpOtherReflectedGuestExceptions",
431*c23271b6SNuno Das Neves 	[48] = "VpGlobalIoTlbFlushes",
432*c23271b6SNuno Das Neves 	[49] = "VpGlobalIoTlbFlushCost",
433*c23271b6SNuno Das Neves 	[50] = "VpLocalIoTlbFlushes",
434*c23271b6SNuno Das Neves 	[51] = "VpLocalIoTlbFlushCost",
435*c23271b6SNuno Das Neves 	[52] = "VpFlushGuestPhysicalAddressSpaceHypercalls",
436*c23271b6SNuno Das Neves 	[53] = "VpFlushGuestPhysicalAddressListHypercalls",
437*c23271b6SNuno Das Neves 	[54] = "VpPostedInterruptNotifications",
438*c23271b6SNuno Das Neves 	[55] = "VpPostedInterruptScans",
439*c23271b6SNuno Das Neves 	[56] = "VpTotalCoreRunTime",
440*c23271b6SNuno Das Neves 	[57] = "VpMaximumRunTime",
441*c23271b6SNuno Das Neves 	[58] = "VpWaitingForCpuTimeBucket0",
442*c23271b6SNuno Das Neves 	[59] = "VpWaitingForCpuTimeBucket1",
443*c23271b6SNuno Das Neves 	[60] = "VpWaitingForCpuTimeBucket2",
444*c23271b6SNuno Das Neves 	[61] = "VpWaitingForCpuTimeBucket3",
445*c23271b6SNuno Das Neves 	[62] = "VpWaitingForCpuTimeBucket4",
446*c23271b6SNuno Das Neves 	[63] = "VpWaitingForCpuTimeBucket5",
447*c23271b6SNuno Das Neves 	[64] = "VpWaitingForCpuTimeBucket6",
448*c23271b6SNuno Das Neves 	[65] = "VpHwpRequestContextSwitches",
449*c23271b6SNuno Das Neves 	[66] = "VpPlaceholder2",
450*c23271b6SNuno Das Neves 	[67] = "VpPlaceholder3",
451*c23271b6SNuno Das Neves 	[68] = "VpPlaceholder4",
452*c23271b6SNuno Das Neves 	[69] = "VpPlaceholder5",
453*c23271b6SNuno Das Neves 	[70] = "VpPlaceholder6",
454*c23271b6SNuno Das Neves 	[71] = "VpPlaceholder7",
455*c23271b6SNuno Das Neves 	[72] = "VpPlaceholder8",
456*c23271b6SNuno Das Neves 	[73] = "VpContentionTime",
457*c23271b6SNuno Das Neves 	[74] = "VpWakeUpTime",
458*c23271b6SNuno Das Neves 	[75] = "VpSchedulingPriority",
459*c23271b6SNuno Das Neves 	[76] = "VpVtl1DispatchCount",
460*c23271b6SNuno Das Neves 	[77] = "VpVtl2DispatchCount",
461*c23271b6SNuno Das Neves 	[78] = "VpVtl2DispatchBucket0",
462*c23271b6SNuno Das Neves 	[79] = "VpVtl2DispatchBucket1",
463*c23271b6SNuno Das Neves 	[80] = "VpVtl2DispatchBucket2",
464*c23271b6SNuno Das Neves 	[81] = "VpVtl2DispatchBucket3",
465*c23271b6SNuno Das Neves 	[82] = "VpVtl2DispatchBucket4",
466*c23271b6SNuno Das Neves 	[83] = "VpVtl2DispatchBucket5",
467*c23271b6SNuno Das Neves 	[84] = "VpVtl2DispatchBucket6",
468*c23271b6SNuno Das Neves 	[85] = "VpVtl1RunTime",
469*c23271b6SNuno Das Neves 	[86] = "VpVtl2RunTime",
470*c23271b6SNuno Das Neves 	[87] = "VpIommuHypercalls",
471*c23271b6SNuno Das Neves 	[88] = "VpCpuGroupHypercalls",
472*c23271b6SNuno Das Neves 	[89] = "VpVsmHypercalls",
473*c23271b6SNuno Das Neves 	[90] = "VpEventLogHypercalls",
474*c23271b6SNuno Das Neves 	[91] = "VpDeviceDomainHypercalls",
475*c23271b6SNuno Das Neves 	[92] = "VpDepositHypercalls",
476*c23271b6SNuno Das Neves 	[93] = "VpSvmHypercalls",
477*c23271b6SNuno Das Neves 	[94] = "VpLoadAvg",
478*c23271b6SNuno Das Neves 	[95] = "VpRootDispatchThreadBlocked",
479*c23271b6SNuno Das Neves 	[96] = "VpIdleCpuTime",
480*c23271b6SNuno Das Neves 	[97] = "VpWaitingForCpuTimeBucket7",
481*c23271b6SNuno Das Neves 	[98] = "VpWaitingForCpuTimeBucket8",
482*c23271b6SNuno Das Neves 	[99] = "VpWaitingForCpuTimeBucket9",
483*c23271b6SNuno Das Neves 	[100] = "VpWaitingForCpuTimeBucket10",
484*c23271b6SNuno Das Neves 	[101] = "VpWaitingForCpuTimeBucket11",
485*c23271b6SNuno Das Neves 	[102] = "VpWaitingForCpuTimeBucket12",
486*c23271b6SNuno Das Neves 	[103] = "VpHierarchicalSuspendTime",
487*c23271b6SNuno Das Neves 	[104] = "VpExpressSchedulingAttempts",
488*c23271b6SNuno Das Neves 	[105] = "VpExpressSchedulingCount",
489*c23271b6SNuno Das Neves #endif
490*c23271b6SNuno Das Neves };
491