| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490 |
- // 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
- };
|