// SPDX-License-Identifier: GPL-2.0-only/* * Copyright (c) 2026, Microsoft Corporation. * * Data for printing stats page counters via debugfs. * * Authors: Microsoft Linux virtualization team */ /* * For simplicity, this file is included directly in mshv_debugfs.c. * If these are ever needed elsewhere they should be compiled separately. * Ensure this file is not used twice by accident. */#ifndef MSHV_DEBUGFS_C#error "This file should only be included in mshv_debugfs.c"#endif /* HV_HYPERVISOR_COUNTER */static char *hv_hypervisor_counters[] = { [1] = "HvLogicalProcessors", [2] = "HvPartitions", [3] = "HvTotalPages", [4] = "HvVirtualProcessors", [5] = "HvMonitoredNotifications", [6] = "HvModernStandbyEntries", [7] = "HvPlatformIdleTransitions", [8] = "HvHypervisorStartupCost", [10] = "HvIOSpacePages", [11] = "HvNonEssentialPagesForDump", [12] = "HvSubsumedPages",}; /* HV_CPU_COUNTER */static char *hv_lp_counters[] = { [1] = "LpGlobalTime", [2] = "LpTotalRunTime", [3] = "LpHypervisorRunTime", [4] = "LpHardwareInterrupts", [5] = "LpContextSwitches", [6] = "LpInterProcessorInterrupts", [7] = "LpSchedulerInterrupts", [8] = "LpTimerInterrupts", [9] = "LpInterProcessorInterruptsSent", [10] = "LpProcessorHalts", [11] = "LpMonitorTransitionCost", [12] = "LpContextSwitchTime", [13] = "LpC1TransitionsCount", [14] = "LpC1RunTime", [15] = "LpC2TransitionsCount", [16] = "LpC2RunTime", [17] = "LpC3TransitionsCount", [18] = "LpC3RunTime", [19] = "LpRootVpIndex", [20] = "LpIdleSequenceNumber", [21] = "LpGlobalTscCount", [22] = "LpActiveTscCount", [23] = "LpIdleAccumulation", [24] = "LpReferenceCycleCount0", [25] = "LpActualCycleCount0", [26] = "LpReferenceCycleCount1", [27] = "LpActualCycleCount1", [28] = "LpProximityDomainId", [29] = "LpPostedInterruptNotifications", [30] = "LpBranchPredictorFlushes",#if IS_ENABLED(CONFIG_X86_64) [31] = "LpL1DataCacheFlushes", [32] = "LpImmediateL1DataCacheFlushes", [33] = "LpMbFlushes", [34] = "LpCounterRefreshSequenceNumber", [35] = "LpCounterRefreshReferenceTime", [36] = "LpIdleAccumulationSnapshot", [37] = "LpActiveTscCountSnapshot", [38] = "LpHwpRequestContextSwitches", [39] = "LpPlaceholder1", [40] = "LpPlaceholder2", [41] = "LpPlaceholder3", [42] = "LpPlaceholder4", [43] = "LpPlaceholder5", [44] = "LpPlaceholder6", [45] = "LpPlaceholder7", [46] = "LpPlaceholder8", [47] = "LpPlaceholder9", [48] = "LpSchLocalRunListSize", [49] = "LpReserveGroupId", [50] = "LpRunningPriority", [51] = "LpPerfmonInterruptCount",#elif IS_ENABLED(CONFIG_ARM64) [31] = "LpCounterRefreshSequenceNumber", [32] = "LpCounterRefreshReferenceTime", [33] = "LpIdleAccumulationSnapshot", [34] = "LpActiveTscCountSnapshot", [35] = "LpHwpRequestContextSwitches", [36] = "LpPlaceholder2", [37] = "LpPlaceholder3", [38] = "LpPlaceholder4", [39] = "LpPlaceholder5", [40] = "LpPlaceholder6", [41] = "LpPlaceholder7", [42] = "LpPlaceholder8", [43] = "LpPlaceholder9", [44] = "LpSchLocalRunListSize", [45] = "LpReserveGroupId", [46] = "LpRunningPriority",#endif}; /* HV_PROCESS_COUNTER */static char *hv_partition_counters[] = { [1] = "PtVirtualProcessors", [3] = "PtTlbSize", [4] = "PtAddressSpaces", [5] = "PtDepositedPages", [6] = "PtGpaPages", [7] = "PtGpaSpaceModifications", [8] = "PtVirtualTlbFlushEntires", [9] = "PtRecommendedTlbSize", [10] = "PtGpaPages4K", [11] = "PtGpaPages2M", [12] = "PtGpaPages1G", [13] = "PtGpaPages512G", [14] = "PtDevicePages4K", [15] = "PtDevicePages2M", [16] = "PtDevicePages1G", [17] = "PtDevicePages512G", [18] = "PtAttachedDevices", [19] = "PtDeviceInterruptMappings", [20] = "PtIoTlbFlushes", [21] = "PtIoTlbFlushCost", [22] = "PtDeviceInterruptErrors", [23] = "PtDeviceDmaErrors", [24] = "PtDeviceInterruptThrottleEvents", [25] = "PtSkippedTimerTicks", [26] = "PtPartitionId",#if IS_ENABLED(CONFIG_X86_64) [27] = "PtNestedTlbSize", [28] = "PtRecommendedNestedTlbSize", [29] = "PtNestedTlbFreeListSize", [30] = "PtNestedTlbTrimmedPages", [31] = "PtPagesShattered", [32] = "PtPagesRecombined", [33] = "PtHwpRequestValue", [34] = "PtAutoSuspendEnableTime", [35] = "PtAutoSuspendTriggerTime", [36] = "PtAutoSuspendDisableTime", [37] = "PtPlaceholder1", [38] = "PtPlaceholder2", [39] = "PtPlaceholder3", [40] = "PtPlaceholder4", [41] = "PtPlaceholder5", [42] = "PtPlaceholder6", [43] = "PtPlaceholder7", [44] = "PtPlaceholder8", [45] = "PtHypervisorStateTransferGeneration", [46] = "PtNumberofActiveChildPartitions",#elif IS_ENABLED(CONFIG_ARM64) [27] = "PtHwpRequestValue", [28] = "PtAutoSuspendEnableTime", [29] = "PtAutoSuspendTriggerTime", [30] = "PtAutoSuspendDisableTime", [31] = "PtPlaceholder1", [32] = "PtPlaceholder2", [33] = "PtPlaceholder3", [34] = "PtPlaceholder4", [35] = "PtPlaceholder5", [36] = "PtPlaceholder6", [37] = "PtPlaceholder7", [38] = "PtPlaceholder8", [39] = "PtHypervisorStateTransferGeneration", [40] = "PtNumberofActiveChildPartitions",#endif}; /* HV_THREAD_COUNTER */static char *hv_vp_counters[] = { [1] = "VpTotalRunTime", [2] = "VpHypervisorRunTime", [3] = "VpRemoteNodeRunTime", [4] = "VpNormalizedRunTime", [5] = "VpIdealCpu", [7] = "VpHypercallsCount", [8] = "VpHypercallsTime",#if IS_ENABLED(CONFIG_X86_64) [9] = "VpPageInvalidationsCount", [10] = "VpPageInvalidationsTime", [11] = "VpControlRegisterAccessesCount", [12] = "VpControlRegisterAccessesTime", [13] = "VpIoInstructionsCount", [14] = "VpIoInstructionsTime", [15] = "VpHltInstructionsCount", [16] = "VpHltInstructionsTime", [17] = "VpMwaitInstructionsCount", [18] = "VpMwaitInstructionsTime", [19] = "VpCpuidInstructionsCount", [20] = "VpCpuidInstructionsTime", [21] = "VpMsrAccessesCount", [22] = "VpMsrAccessesTime", [23] = "VpOtherInterceptsCount", [24] = "VpOtherInterceptsTime", [25] = "VpExternalInterruptsCount", [26] = "VpExternalInterruptsTime", [27] = "VpPendingInterruptsCount", [28] = "VpPendingInterruptsTime", [29] = "VpEmulatedInstructionsCount", [30] = "VpEmulatedInstructionsTime", [31] = "VpDebugRegisterAccessesCount", [32] = "VpDebugRegisterAccessesTime", [33] = "VpPageFaultInterceptsCount", [34] = "VpPageFaultInterceptsTime", [35] = "VpGuestPageTableMaps", [36] = "VpLargePageTlbFills", [37] = "VpSmallPageTlbFills", [38] = "VpReflectedGuestPageFaults", [39] = "VpApicMmioAccesses", [40] = "VpIoInterceptMessages", [41] = "VpMemoryInterceptMessages", [42] = "VpApicEoiAccesses", [43] = "VpOtherMessages", [44] = "VpPageTableAllocations", [45] = "VpLogicalProcessorMigrations", [46] = "VpAddressSpaceEvictions", [47] = "VpAddressSpaceSwitches", [48] = "VpAddressDomainFlushes", [49] = "VpAddressSpaceFlushes", [50] = "VpGlobalGvaRangeFlushes", [51] = "VpLocalGvaRangeFlushes", [52] = "VpPageTableEvictions", [53] = "VpPageTableReclamations", [54] = "VpPageTableResets", [55] = "VpPageTableValidations", [56] = "VpApicTprAccesses", [57] = "VpPageTableWriteIntercepts", [58] = "VpSyntheticInterrupts", [59] = "VpVirtualInterrupts", [60] = "VpApicIpisSent", [61] = "VpApicSelfIpisSent", [62] = "VpGpaSpaceHypercalls", [63] = "VpLogicalProcessorHypercalls", [64] = "VpLongSpinWaitHypercalls", [65] = "VpOtherHypercalls", [66] = "VpSyntheticInterruptHypercalls", [67] = "VpVirtualInterruptHypercalls", [68] = "VpVirtualMmuHypercalls", [69] = "VpVirtualProcessorHypercalls", [70] = "VpHardwareInterrupts", [71] = "VpNestedPageFaultInterceptsCount", [72] = "VpNestedPageFaultInterceptsTime", [73] = "VpPageScans", [74] = "VpLogicalProcessorDispatches", [75] = "VpWaitingForCpuTime", [76] = "VpExtendedHypercalls", [77] = "VpExtendedHypercallInterceptMessages", [78] = "VpMbecNestedPageTableSwitches", [79] = "VpOtherReflectedGuestExceptions", [80] = "VpGlobalIoTlbFlushes", [81] = "VpGlobalIoTlbFlushCost", [82] = "VpLocalIoTlbFlushes", [83] = "VpLocalIoTlbFlushCost", [84] = "VpHypercallsForwardedCount", [85] = "VpHypercallsForwardingTime", [86] = "VpPageInvalidationsForwardedCount", [87] = "VpPageInvalidationsForwardingTime", [88] = "VpControlRegisterAccessesForwardedCount", [89] = "VpControlRegisterAccessesForwardingTime", [90] = "VpIoInstructionsForwardedCount", [91] = "VpIoInstructionsForwardingTime", [92] = "VpHltInstructionsForwardedCount", [93] = "VpHltInstructionsForwardingTime", [94] = "VpMwaitInstructionsForwardedCount", [95] = "VpMwaitInstructionsForwardingTime", [96] = "VpCpuidInstructionsForwardedCount", [97] = "VpCpuidInstructionsForwardingTime", [98] = "VpMsrAccessesForwardedCount", [99] = "VpMsrAccessesForwardingTime", [100] = "VpOtherInterceptsForwardedCount", [101] = "VpOtherInterceptsForwardingTime", [102] = "VpExternalInterruptsForwardedCount", [103] = "VpExternalInterruptsForwardingTime", [104] = "VpPendingInterruptsForwardedCount", [105] = "VpPendingInterruptsForwardingTime", [106] = "VpEmulatedInstructionsForwardedCount", [107] = "VpEmulatedInstructionsForwardingTime", [108] = "VpDebugRegisterAccessesForwardedCount", [109] = "VpDebugRegisterAccessesForwardingTime", [110] = "VpPageFaultInterceptsForwardedCount", [111] = "VpPageFaultInterceptsForwardingTime", [112] = "VpVmclearEmulationCount", [113] = "VpVmclearEmulationTime", [114] = "VpVmptrldEmulationCount", [115] = "VpVmptrldEmulationTime", [116] = "VpVmptrstEmulationCount", [117] = "VpVmptrstEmulationTime", [118] = "VpVmreadEmulationCount", [119] = "VpVmreadEmulationTime", [120] = "VpVmwriteEmulationCount", [121] = "VpVmwriteEmulationTime", [122] = "VpVmxoffEmulationCount", [123] = "VpVmxoffEmulationTime", [124] = "VpVmxonEmulationCount", [125] = "VpVmxonEmulationTime", [126] = "VpNestedVMEntriesCount", [127] = "VpNestedVMEntriesTime", [128] = "VpNestedSLATSoftPageFaultsCount", [129] = "VpNestedSLATSoftPageFaultsTime", [130] = "VpNestedSLATHardPageFaultsCount", [131] = "VpNestedSLATHardPageFaultsTime", [132] = "VpInvEptAllContextEmulationCount", [133] = "VpInvEptAllContextEmulationTime", [134] = "VpInvEptSingleContextEmulationCount", [135] = "VpInvEptSingleContextEmulationTime", [136] = "VpInvVpidAllContextEmulationCount", [137] = "VpInvVpidAllContextEmulationTime", [138] = "VpInvVpidSingleContextEmulationCount", [139] = "VpInvVpidSingleContextEmulationTime", [140] = "VpInvVpidSingleAddressEmulationCount", [141] = "VpInvVpidSingleAddressEmulationTime", [142] = "VpNestedTlbPageTableReclamations", [143] = "VpNestedTlbPageTableEvictions", [144] = "VpFlushGuestPhysicalAddressSpaceHypercalls", [145] = "VpFlushGuestPhysicalAddressListHypercalls", [146] = "VpPostedInterruptNotifications", [147] = "VpPostedInterruptScans", [148] = "VpTotalCoreRunTime", [149] = "VpMaximumRunTime", [150] = "VpHwpRequestContextSwitches", [151] = "VpWaitingForCpuTimeBucket0", [152] = "VpWaitingForCpuTimeBucket1", [153] = "VpWaitingForCpuTimeBucket2", [154] = "VpWaitingForCpuTimeBucket3", [155] = "VpWaitingForCpuTimeBucket4", [156] = "VpWaitingForCpuTimeBucket5", [157] = "VpWaitingForCpuTimeBucket6", [158] = "VpVmloadEmulationCount", [159] = "VpVmloadEmulationTime", [160] = "VpVmsaveEmulationCount", [161] = "VpVmsaveEmulationTime", [162] = "VpGifInstructionEmulationCount", [163] = "VpGifInstructionEmulationTime", [164] = "VpEmulatedErrataSvmInstructions", [165] = "VpPlaceholder1", [166] = "VpPlaceholder2", [167] = "VpPlaceholder3", [168] = "VpPlaceholder4", [169] = "VpPlaceholder5", [170] = "VpPlaceholder6", [171] = "VpPlaceholder7", [172] = "VpPlaceholder8", [173] = "VpContentionTime", [174] = "VpWakeUpTime", [175] = "VpSchedulingPriority", [176] = "VpRdpmcInstructionsCount", [177] = "VpRdpmcInstructionsTime", [178] = "VpPerfmonPmuMsrAccessesCount", [179] = "VpPerfmonLbrMsrAccessesCount", [180] = "VpPerfmonIptMsrAccessesCount", [181] = "VpPerfmonInterruptCount", [182] = "VpVtl1DispatchCount", [183] = "VpVtl2DispatchCount", [184] = "VpVtl2DispatchBucket0", [185] = "VpVtl2DispatchBucket1", [186] = "VpVtl2DispatchBucket2", [187] = "VpVtl2DispatchBucket3", [188] = "VpVtl2DispatchBucket4", [189] = "VpVtl2DispatchBucket5", [190] = "VpVtl2DispatchBucket6", [191] = "VpVtl1RunTime", [192] = "VpVtl2RunTime", [193] = "VpIommuHypercalls", [194] = "VpCpuGroupHypercalls", [195] = "VpVsmHypercalls", [196] = "VpEventLogHypercalls", [197] = "VpDeviceDomainHypercalls", [198] = "VpDepositHypercalls", [199] = "VpSvmHypercalls", [200] = "VpBusLockAcquisitionCount", [201] = "VpLoadAvg", [202] = "VpRootDispatchThreadBlocked", [203] = "VpIdleCpuTime", [204] = "VpWaitingForCpuTimeBucket7", [205] = "VpWaitingForCpuTimeBucket8", [206] = "VpWaitingForCpuTimeBucket9", [207] = "VpWaitingForCpuTimeBucket10", [208] = "VpWaitingForCpuTimeBucket11", [209] = "VpWaitingForCpuTimeBucket12", [210] = "VpHierarchicalSuspendTime", [211] = "VpExpressSchedulingAttempts", [212] = "VpExpressSchedulingCount",#elif IS_ENABLED(CONFIG_ARM64) [9] = "VpSysRegAccessesCount", [10] = "VpSysRegAccessesTime", [11] = "VpSmcInstructionsCount", [12] = "VpSmcInstructionsTime", [13] = "VpOtherInterceptsCount", [14] = "VpOtherInterceptsTime", [15] = "VpExternalInterruptsCount", [16] = "VpExternalInterruptsTime", [17] = "VpPendingInterruptsCount", [18] = "VpPendingInterruptsTime", [19] = "VpGuestPageTableMaps", [20] = "VpLargePageTlbFills", [21] = "VpSmallPageTlbFills", [22] = "VpReflectedGuestPageFaults", [23] = "VpMemoryInterceptMessages", [24] = "VpOtherMessages", [25] = "VpLogicalProcessorMigrations", [26] = "VpAddressDomainFlushes", [27] = "VpAddressSpaceFlushes", [28] = "VpSyntheticInterrupts", [29] = "VpVirtualInterrupts", [30] = "VpApicSelfIpisSent", [31] = "VpGpaSpaceHypercalls", [32] = "VpLogicalProcessorHypercalls", [33] = "VpLongSpinWaitHypercalls", [34] = "VpOtherHypercalls", [35] = "VpSyntheticInterruptHypercalls", [36] = "VpVirtualInterruptHypercalls", [37] = "VpVirtualMmuHypercalls", [38] = "VpVirtualProcessorHypercalls", [39] = "VpHardwareInterrupts", [40] = "VpNestedPageFaultInterceptsCount", [41] = "VpNestedPageFaultInterceptsTime", [42] = "VpLogicalProcessorDispatches", [43] = "VpWaitingForCpuTime", [44] = "VpExtendedHypercalls", [45] = "VpExtendedHypercallInterceptMessages", [46] = "VpMbecNestedPageTableSwitches", [47] = "VpOtherReflectedGuestExceptions", [48] = "VpGlobalIoTlbFlushes", [49] = "VpGlobalIoTlbFlushCost", [50] = "VpLocalIoTlbFlushes", [51] = "VpLocalIoTlbFlushCost", [52] = "VpFlushGuestPhysicalAddressSpaceHypercalls", [53] = "VpFlushGuestPhysicalAddressListHypercalls", [54] = "VpPostedInterruptNotifications", [55] = "VpPostedInterruptScans", [56] = "VpTotalCoreRunTime", [57] = "VpMaximumRunTime", [58] = "VpWaitingForCpuTimeBucket0", [59] = "VpWaitingForCpuTimeBucket1", [60] = "VpWaitingForCpuTimeBucket2", [61] = "VpWaitingForCpuTimeBucket3", [62] = "VpWaitingForCpuTimeBucket4", [63] = "VpWaitingForCpuTimeBucket5", [64] = "VpWaitingForCpuTimeBucket6", [65] = "VpHwpRequestContextSwitches", [66] = "VpPlaceholder2", [67] = "VpPlaceholder3", [68] = "VpPlaceholder4", [69] = "VpPlaceholder5", [70] = "VpPlaceholder6", [71] = "VpPlaceholder7", [72] = "VpPlaceholder8", [73] = "VpContentionTime", [74] = "VpWakeUpTime", [75] = "VpSchedulingPriority", [76] = "VpVtl1DispatchCount", [77] = "VpVtl2DispatchCount", [78] = "VpVtl2DispatchBucket0", [79] = "VpVtl2DispatchBucket1", [80] = "VpVtl2DispatchBucket2", [81] = "VpVtl2DispatchBucket3", [82] = "VpVtl2DispatchBucket4", [83] = "VpVtl2DispatchBucket5", [84] = "VpVtl2DispatchBucket6", [85] = "VpVtl1RunTime", [86] = "VpVtl2RunTime", [87] = "VpIommuHypercalls", [88] = "VpCpuGroupHypercalls", [89] = "VpVsmHypercalls", [90] = "VpEventLogHypercalls", [91] = "VpDeviceDomainHypercalls", [92] = "VpDepositHypercalls", [93] = "VpSvmHypercalls", [94] = "VpLoadAvg", [95] = "VpRootDispatchThreadBlocked", [96] = "VpIdleCpuTime", [97] = "VpWaitingForCpuTimeBucket7", [98] = "VpWaitingForCpuTimeBucket8", [99] = "VpWaitingForCpuTimeBucket9", [100] = "VpWaitingForCpuTimeBucket10", [101] = "VpWaitingForCpuTimeBucket11", [102] = "VpWaitingForCpuTimeBucket12", [103] = "VpHierarchicalSuspendTime", [104] = "VpExpressSchedulingAttempts", [105] = "VpExpressSchedulingCount",#endif};
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2026, Microsoft Corporation.
*
* Data for printing stats page counters via debugfs.
*
* Authors: Microsoft Linux virtualization team
*/
/*
* For simplicity, this file is included directly in mshv_debugfs.c.
* If these are ever needed elsewhere they should be compiled separately.
* Ensure this file is not used twice by accident.
*/
#ifndef MSHV_DEBUGFS_C
#error "This file should only be included in mshv_debugfs.c"
#endif
/* HV_HYPERVISOR_COUNTER */
static char *hv_hypervisor_counters[] = {
[1] = "HvLogicalProcessors",
[2] = "HvPartitions",
[3] = "HvTotalPages",
[4] = "HvVirtualProcessors",
[5] = "HvMonitoredNotifications",
[6] = "HvModernStandbyEntries",
[7] = "HvPlatformIdleTransitions",
[8] = "HvHypervisorStartupCost",
[10] = "HvIOSpacePages",
[11] = "HvNonEssentialPagesForDump",
[12] = "HvSubsumedPages",
};
/* HV_CPU_COUNTER */
static char *hv_lp_counters[] = {
[1] = "LpGlobalTime",
[2] = "LpTotalRunTime",
[3] = "LpHypervisorRunTime",
[4] = "LpHardwareInterrupts",
[5] = "LpContextSwitches",
[6] = "LpInterProcessorInterrupts",
[7] = "LpSchedulerInterrupts",
[8] = "LpTimerInterrupts",
[9] = "LpInterProcessorInterruptsSent",
[10] = "LpProcessorHalts",
[11] = "LpMonitorTransitionCost",
[12] = "LpContextSwitchTime",
[13] = "LpC1TransitionsCount",
[14] = "LpC1RunTime",
[15] = "LpC2TransitionsCount",
[16] = "LpC2RunTime",
[17] = "LpC3TransitionsCount",
[18] = "LpC3RunTime",
[19] = "LpRootVpIndex",
[20] = "LpIdleSequenceNumber",
[21] = "LpGlobalTscCount",
[22] = "LpActiveTscCount",
[23] = "LpIdleAccumulation",
[24] = "LpReferenceCycleCount0",
[25] = "LpActualCycleCount0",
[26] = "LpReferenceCycleCount1",
[27] = "LpActualCycleCount1",
[28] = "LpProximityDomainId",
[29] = "LpPostedInterruptNotifications",
[30] = "LpBranchPredictorFlushes",
#if IS_ENABLED(CONFIG_X86_64)
[31] = "LpL1DataCacheFlushes",
[32] = "LpImmediateL1DataCacheFlushes",
[33] = "LpMbFlushes",
[34] = "LpCounterRefreshSequenceNumber",
[35] = "LpCounterRefreshReferenceTime",
[36] = "LpIdleAccumulationSnapshot",
[37] = "LpActiveTscCountSnapshot",
[38] = "LpHwpRequestContextSwitches",
[39] = "LpPlaceholder1",
[40] = "LpPlaceholder2",
[41] = "LpPlaceholder3",
[42] = "LpPlaceholder4",
[43] = "LpPlaceholder5",
[44] = "LpPlaceholder6",
[45] = "LpPlaceholder7",
[46] = "LpPlaceholder8",
[47] = "LpPlaceholder9",
[48] = "LpSchLocalRunListSize",
[49] = "LpReserveGroupId",
[50] = "LpRunningPriority",
[51] = "LpPerfmonInterruptCount",
#elif IS_ENABLED(CONFIG_ARM64)
[31] = "LpCounterRefreshSequenceNumber",
[32] = "LpCounterRefreshReferenceTime",
[33] = "LpIdleAccumulationSnapshot",
[34] = "LpActiveTscCountSnapshot",
[35] = "LpHwpRequestContextSwitches",
[36] = "LpPlaceholder2",
[37] = "LpPlaceholder3",
[38] = "LpPlaceholder4",
[39] = "LpPlaceholder5",
[40] = "LpPlaceholder6",
[41] = "LpPlaceholder7",
[42] = "LpPlaceholder8",
[43] = "LpPlaceholder9",
[44] = "LpSchLocalRunListSize",
[45] = "LpReserveGroupId",
[46] = "LpRunningPriority",
#endif
};
/* HV_PROCESS_COUNTER */
static char *hv_partition_counters[] = {
[1] = "PtVirtualProcessors",
[3] = "PtTlbSize",
[4] = "PtAddressSpaces",
[5] = "PtDepositedPages",
[6] = "PtGpaPages",
[7] = "PtGpaSpaceModifications",
[8] = "PtVirtualTlbFlushEntires",
[9] = "PtRecommendedTlbSize",
[10] = "PtGpaPages4K",
[11] = "PtGpaPages2M",
[12] = "PtGpaPages1G",
[13] = "PtGpaPages512G",
[14] = "PtDevicePages4K",
[15] = "PtDevicePages2M",
[16] = "PtDevicePages1G",
[17] = "PtDevicePages512G",
[18] = "PtAttachedDevices",
[19] = "PtDeviceInterruptMappings",
[20] = "PtIoTlbFlushes",
[21] = "PtIoTlbFlushCost",
[22] = "PtDeviceInterruptErrors",
[23] = "PtDeviceDmaErrors",
[24] = "PtDeviceInterruptThrottleEvents",
[25] = "PtSkippedTimerTicks",
[26] = "PtPartitionId",
#if IS_ENABLED(CONFIG_X86_64)
[27] = "PtNestedTlbSize",
[28] = "PtRecommendedNestedTlbSize",
[29] = "PtNestedTlbFreeListSize",
[30] = "PtNestedTlbTrimmedPages",
[31] = "PtPagesShattered",
[32] = "PtPagesRecombined",
[33] = "PtHwpRequestValue",
[34] = "PtAutoSuspendEnableTime",
[35] = "PtAutoSuspendTriggerTime",
[36] = "PtAutoSuspendDisableTime",
[37] = "PtPlaceholder1",
[38] = "PtPlaceholder2",
[39] = "PtPlaceholder3",
[40] = "PtPlaceholder4",
[41] = "PtPlaceholder5",
[42] = "PtPlaceholder6",
[43] = "PtPlaceholder7",
[44] = "PtPlaceholder8",
[45] = "PtHypervisorStateTransferGeneration",
[46] = "PtNumberofActiveChildPartitions",
#elif IS_ENABLED(CONFIG_ARM64)
[27] = "PtHwpRequestValue",
[28] = "PtAutoSuspendEnableTime",
[29] = "PtAutoSuspendTriggerTime",
[30] = "PtAutoSuspendDisableTime",
[31] = "PtPlaceholder1",
[32] = "PtPlaceholder2",
[33] = "PtPlaceholder3",
[34] = "PtPlaceholder4",
[35] = "PtPlaceholder5",
[36] = "PtPlaceholder6",
[37] = "PtPlaceholder7",
[38] = "PtPlaceholder8",
[39] = "PtHypervisorStateTransferGeneration",
[40] = "PtNumberofActiveChildPartitions",
#endif
};
/* HV_THREAD_COUNTER */
static char *hv_vp_counters[] = {
[1] = "VpTotalRunTime",
[2] = "VpHypervisorRunTime",
[3] = "VpRemoteNodeRunTime",
[4] = "VpNormalizedRunTime",
[5] = "VpIdealCpu",
[7] = "VpHypercallsCount",
[8] = "VpHypercallsTime",
#if IS_ENABLED(CONFIG_X86_64)
[9] = "VpPageInvalidationsCount",
[10] = "VpPageInvalidationsTime",
[11] = "VpControlRegisterAccessesCount",
[12] = "VpControlRegisterAccessesTime",
[13] = "VpIoInstructionsCount",
[14] = "VpIoInstructionsTime",
[15] = "VpHltInstructionsCount",
[16] = "VpHltInstructionsTime",
[17] = "VpMwaitInstructionsCount",
[18] = "VpMwaitInstructionsTime",
[19] = "VpCpuidInstructionsCount",
[20] = "VpCpuidInstructionsTime",
[21] = "VpMsrAccessesCount",
[22] = "VpMsrAccessesTime",
[23] = "VpOtherInterceptsCount",
[24] = "VpOtherInterceptsTime",
[25] = "VpExternalInterruptsCount",
[26] = "VpExternalInterruptsTime",
[27] = "VpPendingInterruptsCount",
[28] = "VpPendingInterruptsTime",
[29] = "VpEmulatedInstructionsCount",
[30] = "VpEmulatedInstructionsTime",
[31] = "VpDebugRegisterAccessesCount",
[32] = "VpDebugRegisterAccessesTime",
[33] = "VpPageFaultInterceptsCount",
[34] = "VpPageFaultInterceptsTime",
[35] = "VpGuestPageTableMaps",
[36] = "VpLargePageTlbFills",
[37] = "VpSmallPageTlbFills",
[38] = "VpReflectedGuestPageFaults",
[39] = "VpApicMmioAccesses",
[40] = "VpIoInterceptMessages",
[41] = "VpMemoryInterceptMessages",
[42] = "VpApicEoiAccesses",
[43] = "VpOtherMessages",
[44] = "VpPageTableAllocations",
[45] = "VpLogicalProcessorMigrations",
[46] = "VpAddressSpaceEvictions",
[47] = "VpAddressSpaceSwitches",
[48] = "VpAddressDomainFlushes",
[49] = "VpAddressSpaceFlushes",
[50] = "VpGlobalGvaRangeFlushes",
[51] = "VpLocalGvaRangeFlushes",
[52] = "VpPageTableEvictions",
[53] = "VpPageTableReclamations",
[54] = "VpPageTableResets",
[55] = "VpPageTableValidations",
[56] = "VpApicTprAccesses",
[57] = "VpPageTableWriteIntercepts",
[58] = "VpSyntheticInterrupts",
[59] = "VpVirtualInterrupts",
[60] = "VpApicIpisSent",
[61] = "VpApicSelfIpisSent",
[62] = "VpGpaSpaceHypercalls",
[63] = "VpLogicalProcessorHypercalls",
[64] = "VpLongSpinWaitHypercalls",
[65] = "VpOtherHypercalls",
[66] = "VpSyntheticInterruptHypercalls",
[67] = "VpVirtualInterruptHypercalls",
[68] = "VpVirtualMmuHypercalls",
[69] = "VpVirtualProcessorHypercalls",
[70] = "VpHardwareInterrupts",
[71] = "VpNestedPageFaultInterceptsCount",
[72] = "VpNestedPageFaultInterceptsTime",
[73] = "VpPageScans",
[74] = "VpLogicalProcessorDispatches",
[75] = "VpWaitingForCpuTime",
[76] = "VpExtendedHypercalls",
[77] = "VpExtendedHypercallInterceptMessages",
[78] = "VpMbecNestedPageTableSwitches",
[79] = "VpOtherReflectedGuestExceptions",
[80] = "VpGlobalIoTlbFlushes",
[81] = "VpGlobalIoTlbFlushCost",
[82] = "VpLocalIoTlbFlushes",
[83] = "VpLocalIoTlbFlushCost",
[84] = "VpHypercallsForwardedCount",
[85] = "VpHypercallsForwardingTime",
[86] = "VpPageInvalidationsForwardedCount",
[87] = "VpPageInvalidationsForwardingTime",
[88] = "VpControlRegisterAccessesForwardedCount",
[89] = "VpControlRegisterAccessesForwardingTime",
[90] = "VpIoInstructionsForwardedCount",
[91] = "VpIoInstructionsForwardingTime",
[92] = "VpHltInstructionsForwardedCount",
[93] = "VpHltInstructionsForwardingTime",
[94] = "VpMwaitInstructionsForwardedCount",
[95] = "VpMwaitInstructionsForwardingTime",
[96] = "VpCpuidInstructionsForwardedCount",
[97] = "VpCpuidInstructionsForwardingTime",
[98] = "VpMsrAccessesForwardedCount",
[99] = "VpMsrAccessesForwardingTime",
[100] = "VpOtherInterceptsForwardedCount",
[101] = "VpOtherInterceptsForwardingTime",
[102] = "VpExternalInterruptsForwardedCount",
[103] = "VpExternalInterruptsForwardingTime",
[104] = "VpPendingInterruptsForwardedCount",
[105] = "VpPendingInterruptsForwardingTime",
[106] = "VpEmulatedInstructionsForwardedCount",
[107] = "VpEmulatedInstructionsForwardingTime",
[108] = "VpDebugRegisterAccessesForwardedCount",
[109] = "VpDebugRegisterAccessesForwardingTime",
[110] = "VpPageFaultInterceptsForwardedCount",
[111] = "VpPageFaultInterceptsForwardingTime",
[112] = "VpVmclearEmulationCount",
[113] = "VpVmclearEmulationTime",
[114] = "VpVmptrldEmulationCount",
[115] = "VpVmptrldEmulationTime",
[116] = "VpVmptrstEmulationCount",
[117] = "VpVmptrstEmulationTime",
[118] = "VpVmreadEmulationCount",
[119] = "VpVmreadEmulationTime",
[120] = "VpVmwriteEmulationCount",
[121] = "VpVmwriteEmulationTime",
[122] = "VpVmxoffEmulationCount",
[123] = "VpVmxoffEmulationTime",
[124] = "VpVmxonEmulationCount",
[125] = "VpVmxonEmulationTime",
[126] = "VpNestedVMEntriesCount",
[127] = "VpNestedVMEntriesTime",
[128] = "VpNestedSLATSoftPageFaultsCount",
[129] = "VpNestedSLATSoftPageFaultsTime",
[130] = "VpNestedSLATHardPageFaultsCount",
[131] = "VpNestedSLATHardPageFaultsTime",
[132] = "VpInvEptAllContextEmulationCount",
[133] = "VpInvEptAllContextEmulationTime",
[134] = "VpInvEptSingleContextEmulationCount",
[135] = "VpInvEptSingleContextEmulationTime",
[136] = "VpInvVpidAllContextEmulationCount",
[137] = "VpInvVpidAllContextEmulationTime",
[138] = "VpInvVpidSingleContextEmulationCount",
[139] = "VpInvVpidSingleContextEmulationTime",
[140] = "VpInvVpidSingleAddressEmulationCount",
[141] = "VpInvVpidSingleAddressEmulationTime",
[142] = "VpNestedTlbPageTableReclamations",
[143] = "VpNestedTlbPageTableEvictions",
[144] = "VpFlushGuestPhysicalAddressSpaceHypercalls",
[145] = "VpFlushGuestPhysicalAddressListHypercalls",
[146] = "VpPostedInterruptNotifications",
[147] = "VpPostedInterruptScans",
[148] = "VpTotalCoreRunTime",
[149] = "VpMaximumRunTime",
[150] = "VpHwpRequestContextSwitches",
[151] = "VpWaitingForCpuTimeBucket0",
[152] = "VpWaitingForCpuTimeBucket1",
[153] = "VpWaitingForCpuTimeBucket2",
[154] = "VpWaitingForCpuTimeBucket3",
[155] = "VpWaitingForCpuTimeBucket4",
[156] = "VpWaitingForCpuTimeBucket5",
[157] = "VpWaitingForCpuTimeBucket6",
[158] = "VpVmloadEmulationCount",
[159] = "VpVmloadEmulationTime",
[160] = "VpVmsaveEmulationCount",
[161] = "VpVmsaveEmulationTime",
[162] = "VpGifInstructionEmulationCount",
[163] = "VpGifInstructionEmulationTime",
[164] = "VpEmulatedErrataSvmInstructions",
[165] = "VpPlaceholder1",
[166] = "VpPlaceholder2",
[167] = "VpPlaceholder3",
[168] = "VpPlaceholder4",
[169] = "VpPlaceholder5",
[170] = "VpPlaceholder6",
[171] = "VpPlaceholder7",
[172] = "VpPlaceholder8",
[173] = "VpContentionTime",
[174] = "VpWakeUpTime",
[175] = "VpSchedulingPriority",
[176] = "VpRdpmcInstructionsCount",
[177] = "VpRdpmcInstructionsTime",
[178] = "VpPerfmonPmuMsrAccessesCount",
[179] = "VpPerfmonLbrMsrAccessesCount",
[180] = "VpPerfmonIptMsrAccessesCount",
[181] = "VpPerfmonInterruptCount",
[182] = "VpVtl1DispatchCount",
[183] = "VpVtl2DispatchCount",
[184] = "VpVtl2DispatchBucket0",
[185] = "VpVtl2DispatchBucket1",
[186] = "VpVtl2DispatchBucket2",
[187] = "VpVtl2DispatchBucket3",
[188] = "VpVtl2DispatchBucket4",
[189] = "VpVtl2DispatchBucket5",
[190] = "VpVtl2DispatchBucket6",
[191] = "VpVtl1RunTime",
[192] = "VpVtl2RunTime",
[193] = "VpIommuHypercalls",
[194] = "VpCpuGroupHypercalls",
[195] = "VpVsmHypercalls",
[196] = "VpEventLogHypercalls",
[197] = "VpDeviceDomainHypercalls",
[198] = "VpDepositHypercalls",
[199] = "VpSvmHypercalls",
[200] = "VpBusLockAcquisitionCount",
[201] = "VpLoadAvg",
[202] = "VpRootDispatchThreadBlocked",
[203] = "VpIdleCpuTime",
[204] = "VpWaitingForCpuTimeBucket7",
[205] = "VpWaitingForCpuTimeBucket8",
[206] = "VpWaitingForCpuTimeBucket9",
[207] = "VpWaitingForCpuTimeBucket10",
[208] = "VpWaitingForCpuTimeBucket11",
[209] = "VpWaitingForCpuTimeBucket12",
[210] = "VpHierarchicalSuspendTime",
[211] = "VpExpressSchedulingAttempts",
[212] = "VpExpressSchedulingCount",
#elif IS_ENABLED(CONFIG_ARM64)
[9] = "VpSysRegAccessesCount",
[10] = "VpSysRegAccessesTime",
[11] = "VpSmcInstructionsCount",
[12] = "VpSmcInstructionsTime",
[13] = "VpOtherInterceptsCount",
[14] = "VpOtherInterceptsTime",
[15] = "VpExternalInterruptsCount",
[16] = "VpExternalInterruptsTime",
[17] = "VpPendingInterruptsCount",
[18] = "VpPendingInterruptsTime",
[19] = "VpGuestPageTableMaps",
[20] = "VpLargePageTlbFills",
[21] = "VpSmallPageTlbFills",
[22] = "VpReflectedGuestPageFaults",
[23] = "VpMemoryInterceptMessages",
[24] = "VpOtherMessages",
[25] = "VpLogicalProcessorMigrations",
[26] = "VpAddressDomainFlushes",
[27] = "VpAddressSpaceFlushes",
[28] = "VpSyntheticInterrupts",
[29] = "VpVirtualInterrupts",
[30] = "VpApicSelfIpisSent",
[31] = "VpGpaSpaceHypercalls",
[32] = "VpLogicalProcessorHypercalls",
[33] = "VpLongSpinWaitHypercalls",
[34] = "VpOtherHypercalls",
[35] = "VpSyntheticInterruptHypercalls",
[36] = "VpVirtualInterruptHypercalls",
[37] = "VpVirtualMmuHypercalls",
[38] = "VpVirtualProcessorHypercalls",
[39] = "VpHardwareInterrupts",
[40] = "VpNestedPageFaultInterceptsCount",
[41] = "VpNestedPageFaultInterceptsTime",
[42] = "VpLogicalProcessorDispatches",
[43] = "VpWaitingForCpuTime",
[44] = "VpExtendedHypercalls",
[45] = "VpExtendedHypercallInterceptMessages",
[46] = "VpMbecNestedPageTableSwitches",
[47] = "VpOtherReflectedGuestExceptions",
[48] = "VpGlobalIoTlbFlushes",
[49] = "VpGlobalIoTlbFlushCost",
[50] = "VpLocalIoTlbFlushes",
[51] = "VpLocalIoTlbFlushCost",
[52] = "VpFlushGuestPhysicalAddressSpaceHypercalls",
[53] = "VpFlushGuestPhysicalAddressListHypercalls",
[54] = "VpPostedInterruptNotifications",
[55] = "VpPostedInterruptScans",
[56] = "VpTotalCoreRunTime",
[57] = "VpMaximumRunTime",
[58] = "VpWaitingForCpuTimeBucket0",
[59] = "VpWaitingForCpuTimeBucket1",
[60] = "VpWaitingForCpuTimeBucket2",
[61] = "VpWaitingForCpuTimeBucket3",
[62] = "VpWaitingForCpuTimeBucket4",
[63] = "VpWaitingForCpuTimeBucket5",
[64] = "VpWaitingForCpuTimeBucket6",
[65] = "VpHwpRequestContextSwitches",
[66] = "VpPlaceholder2",
[67] = "VpPlaceholder3",
[68] = "VpPlaceholder4",
[69] = "VpPlaceholder5",
[70] = "VpPlaceholder6",
[71] = "VpPlaceholder7",
[72] = "VpPlaceholder8",
[73] = "VpContentionTime",
[74] = "VpWakeUpTime",
[75] = "VpSchedulingPriority",
[76] = "VpVtl1DispatchCount",
[77] = "VpVtl2DispatchCount",
[78] = "VpVtl2DispatchBucket0",
[79] = "VpVtl2DispatchBucket1",
[80] = "VpVtl2DispatchBucket2",
[81] = "VpVtl2DispatchBucket3",
[82] = "VpVtl2DispatchBucket4",
[83] = "VpVtl2DispatchBucket5",
[84] = "VpVtl2DispatchBucket6",
[85] = "VpVtl1RunTime",
[86] = "VpVtl2RunTime",
[87] = "VpIommuHypercalls",
[88] = "VpCpuGroupHypercalls",
[89] = "VpVsmHypercalls",
[90] = "VpEventLogHypercalls",
[91] = "VpDeviceDomainHypercalls",
[92] = "VpDepositHypercalls",
[93] = "VpSvmHypercalls",
[94] = "VpLoadAvg",
[95] = "VpRootDispatchThreadBlocked",
[96] = "VpIdleCpuTime",
[97] = "VpWaitingForCpuTimeBucket7",
[98] = "VpWaitingForCpuTimeBucket8",
[99] = "VpWaitingForCpuTimeBucket9",
[100] = "VpWaitingForCpuTimeBucket10",
[101] = "VpWaitingForCpuTimeBucket11",
[102] = "VpWaitingForCpuTimeBucket12",
[103] = "VpHierarchicalSuspendTime",
[104] = "VpExpressSchedulingAttempts",
[105] = "VpExpressSchedulingCount",
#endif
};