From nobody Sat Feb 7 10:16:19 2026 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5B68536F418; Wed, 28 Jan 2026 18:11:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=13.77.154.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769623911; cv=none; b=BJnSWjTS4S9lpBwJhb/pwTO+MsaMKHS078EX31Eg0EODkJW6gy9o/yuPkEMS/8egZA80wLDKN5pvkhCjUOE+niqQDm7wR/Z941qpDxazJsoV6XeeA/jUXRDEpQyWhtFYCm/IuMzfm80dHsDBEvjjNdzhE0Md8becmAYSP3IwiM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769623911; c=relaxed/simple; bh=qb6F6pahYHkxyNoSN0tagZwnPObujXZH8LBa1jSt/5A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uglHHG3SgrQP603R4mU7inhU2hun5aMg+hqfPZjFR5KRkxA0l+gJXRleCWhLpdDBfrTABhemAH/Lro823ON56kQV8lSkLFx8Tu9KYLWlRKVzjjTCd2BLJgnxdUlGZriOMD36zFCY4N7/SOZJfo6SAQkh3/8CsxuZEmOzMOm7nWk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com; spf=pass smtp.mailfrom=linux.microsoft.com; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b=iPur6vrA; arc=none smtp.client-ip=13.77.154.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.microsoft.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b="iPur6vrA" Received: by linux.microsoft.com (Postfix, from userid 1032) id 1323020B716C; Wed, 28 Jan 2026 10:11:49 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1323020B716C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1769623909; bh=VhykpXRd2RJmYlq5I0euhkx7hoXhpjbrk8wu/IXvGcA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iPur6vrAVXKq+KqiWEaaJlhKFGdVGIiqmMPE23VGz4Gf9eXRMg0OUKL+xoMj5oc3c RzpZYGDybWzwWP4So/KFS+3/mlQmFmpraAONMGjRuxr31RiJigFbSmV2Wb/gCK8Io0 /85WUZxgfK0H7ClJqw03nSnpxO97AvmEsu7b/wyY= From: Nuno Das Neves To: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org, mhklinux@outlook.com, skinsburskii@linux.microsoft.com Cc: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, longli@microsoft.com, prapal@linux.microsoft.com, mrathor@linux.microsoft.com, paekkaladevi@linux.microsoft.com, Nuno Das Neves Subject: [PATCH v6 6/7] mshv: Add data for printing stats page counters Date: Wed, 28 Jan 2026 10:11:45 -0800 Message-ID: <20260128181146.517708-7-nunodasneves@linux.microsoft.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260128181146.517708-1-nunodasneves@linux.microsoft.com> References: <20260128181146.517708-1-nunodasneves@linux.microsoft.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce mshv_debugfs_counters.c, containing static data corresponding to HV_*_COUNTER enums in the hypervisor source. Defining the enum members as an array instead makes more sense, since it will be iterated over to print counter information to debugfs. Include hypervisor, logical processor, partition, and virtual processor counters. Signed-off-by: Nuno Das Neves --- drivers/hv/mshv_debugfs_counters.c | 490 +++++++++++++++++++++++++++++ 1 file changed, 490 insertions(+) create mode 100644 drivers/hv/mshv_debugfs_counters.c diff --git a/drivers/hv/mshv_debugfs_counters.c b/drivers/hv/mshv_debugfs_c= ounters.c new file mode 100644 index 000000000000..978536ba691f --- /dev/null +++ b/drivers/hv/mshv_debugfs_counters.c @@ -0,0 +1,490 @@ +// 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[] =3D { + [1] =3D "HvLogicalProcessors", + [2] =3D "HvPartitions", + [3] =3D "HvTotalPages", + [4] =3D "HvVirtualProcessors", + [5] =3D "HvMonitoredNotifications", + [6] =3D "HvModernStandbyEntries", + [7] =3D "HvPlatformIdleTransitions", + [8] =3D "HvHypervisorStartupCost", + + [10] =3D "HvIOSpacePages", + [11] =3D "HvNonEssentialPagesForDump", + [12] =3D "HvSubsumedPages", +}; + +/* HV_CPU_COUNTER */ +static char *hv_lp_counters[] =3D { + [1] =3D "LpGlobalTime", + [2] =3D "LpTotalRunTime", + [3] =3D "LpHypervisorRunTime", + [4] =3D "LpHardwareInterrupts", + [5] =3D "LpContextSwitches", + [6] =3D "LpInterProcessorInterrupts", + [7] =3D "LpSchedulerInterrupts", + [8] =3D "LpTimerInterrupts", + [9] =3D "LpInterProcessorInterruptsSent", + [10] =3D "LpProcessorHalts", + [11] =3D "LpMonitorTransitionCost", + [12] =3D "LpContextSwitchTime", + [13] =3D "LpC1TransitionsCount", + [14] =3D "LpC1RunTime", + [15] =3D "LpC2TransitionsCount", + [16] =3D "LpC2RunTime", + [17] =3D "LpC3TransitionsCount", + [18] =3D "LpC3RunTime", + [19] =3D "LpRootVpIndex", + [20] =3D "LpIdleSequenceNumber", + [21] =3D "LpGlobalTscCount", + [22] =3D "LpActiveTscCount", + [23] =3D "LpIdleAccumulation", + [24] =3D "LpReferenceCycleCount0", + [25] =3D "LpActualCycleCount0", + [26] =3D "LpReferenceCycleCount1", + [27] =3D "LpActualCycleCount1", + [28] =3D "LpProximityDomainId", + [29] =3D "LpPostedInterruptNotifications", + [30] =3D "LpBranchPredictorFlushes", +#if IS_ENABLED(CONFIG_X86_64) + [31] =3D "LpL1DataCacheFlushes", + [32] =3D "LpImmediateL1DataCacheFlushes", + [33] =3D "LpMbFlushes", + [34] =3D "LpCounterRefreshSequenceNumber", + [35] =3D "LpCounterRefreshReferenceTime", + [36] =3D "LpIdleAccumulationSnapshot", + [37] =3D "LpActiveTscCountSnapshot", + [38] =3D "LpHwpRequestContextSwitches", + [39] =3D "LpPlaceholder1", + [40] =3D "LpPlaceholder2", + [41] =3D "LpPlaceholder3", + [42] =3D "LpPlaceholder4", + [43] =3D "LpPlaceholder5", + [44] =3D "LpPlaceholder6", + [45] =3D "LpPlaceholder7", + [46] =3D "LpPlaceholder8", + [47] =3D "LpPlaceholder9", + [48] =3D "LpSchLocalRunListSize", + [49] =3D "LpReserveGroupId", + [50] =3D "LpRunningPriority", + [51] =3D "LpPerfmonInterruptCount", +#elif IS_ENABLED(CONFIG_ARM64) + [31] =3D "LpCounterRefreshSequenceNumber", + [32] =3D "LpCounterRefreshReferenceTime", + [33] =3D "LpIdleAccumulationSnapshot", + [34] =3D "LpActiveTscCountSnapshot", + [35] =3D "LpHwpRequestContextSwitches", + [36] =3D "LpPlaceholder2", + [37] =3D "LpPlaceholder3", + [38] =3D "LpPlaceholder4", + [39] =3D "LpPlaceholder5", + [40] =3D "LpPlaceholder6", + [41] =3D "LpPlaceholder7", + [42] =3D "LpPlaceholder8", + [43] =3D "LpPlaceholder9", + [44] =3D "LpSchLocalRunListSize", + [45] =3D "LpReserveGroupId", + [46] =3D "LpRunningPriority", +#endif +}; + +/* HV_PROCESS_COUNTER */ +static char *hv_partition_counters[] =3D { + [1] =3D "PtVirtualProcessors", + + [3] =3D "PtTlbSize", + [4] =3D "PtAddressSpaces", + [5] =3D "PtDepositedPages", + [6] =3D "PtGpaPages", + [7] =3D "PtGpaSpaceModifications", + [8] =3D "PtVirtualTlbFlushEntires", + [9] =3D "PtRecommendedTlbSize", + [10] =3D "PtGpaPages4K", + [11] =3D "PtGpaPages2M", + [12] =3D "PtGpaPages1G", + [13] =3D "PtGpaPages512G", + [14] =3D "PtDevicePages4K", + [15] =3D "PtDevicePages2M", + [16] =3D "PtDevicePages1G", + [17] =3D "PtDevicePages512G", + [18] =3D "PtAttachedDevices", + [19] =3D "PtDeviceInterruptMappings", + [20] =3D "PtIoTlbFlushes", + [21] =3D "PtIoTlbFlushCost", + [22] =3D "PtDeviceInterruptErrors", + [23] =3D "PtDeviceDmaErrors", + [24] =3D "PtDeviceInterruptThrottleEvents", + [25] =3D "PtSkippedTimerTicks", + [26] =3D "PtPartitionId", +#if IS_ENABLED(CONFIG_X86_64) + [27] =3D "PtNestedTlbSize", + [28] =3D "PtRecommendedNestedTlbSize", + [29] =3D "PtNestedTlbFreeListSize", + [30] =3D "PtNestedTlbTrimmedPages", + [31] =3D "PtPagesShattered", + [32] =3D "PtPagesRecombined", + [33] =3D "PtHwpRequestValue", + [34] =3D "PtAutoSuspendEnableTime", + [35] =3D "PtAutoSuspendTriggerTime", + [36] =3D "PtAutoSuspendDisableTime", + [37] =3D "PtPlaceholder1", + [38] =3D "PtPlaceholder2", + [39] =3D "PtPlaceholder3", + [40] =3D "PtPlaceholder4", + [41] =3D "PtPlaceholder5", + [42] =3D "PtPlaceholder6", + [43] =3D "PtPlaceholder7", + [44] =3D "PtPlaceholder8", + [45] =3D "PtHypervisorStateTransferGeneration", + [46] =3D "PtNumberofActiveChildPartitions", +#elif IS_ENABLED(CONFIG_ARM64) + [27] =3D "PtHwpRequestValue", + [28] =3D "PtAutoSuspendEnableTime", + [29] =3D "PtAutoSuspendTriggerTime", + [30] =3D "PtAutoSuspendDisableTime", + [31] =3D "PtPlaceholder1", + [32] =3D "PtPlaceholder2", + [33] =3D "PtPlaceholder3", + [34] =3D "PtPlaceholder4", + [35] =3D "PtPlaceholder5", + [36] =3D "PtPlaceholder6", + [37] =3D "PtPlaceholder7", + [38] =3D "PtPlaceholder8", + [39] =3D "PtHypervisorStateTransferGeneration", + [40] =3D "PtNumberofActiveChildPartitions", +#endif +}; + +/* HV_THREAD_COUNTER */ +static char *hv_vp_counters[] =3D { + [1] =3D "VpTotalRunTime", + [2] =3D "VpHypervisorRunTime", + [3] =3D "VpRemoteNodeRunTime", + [4] =3D "VpNormalizedRunTime", + [5] =3D "VpIdealCpu", + + [7] =3D "VpHypercallsCount", + [8] =3D "VpHypercallsTime", +#if IS_ENABLED(CONFIG_X86_64) + [9] =3D "VpPageInvalidationsCount", + [10] =3D "VpPageInvalidationsTime", + [11] =3D "VpControlRegisterAccessesCount", + [12] =3D "VpControlRegisterAccessesTime", + [13] =3D "VpIoInstructionsCount", + [14] =3D "VpIoInstructionsTime", + [15] =3D "VpHltInstructionsCount", + [16] =3D "VpHltInstructionsTime", + [17] =3D "VpMwaitInstructionsCount", + [18] =3D "VpMwaitInstructionsTime", + [19] =3D "VpCpuidInstructionsCount", + [20] =3D "VpCpuidInstructionsTime", + [21] =3D "VpMsrAccessesCount", + [22] =3D "VpMsrAccessesTime", + [23] =3D "VpOtherInterceptsCount", + [24] =3D "VpOtherInterceptsTime", + [25] =3D "VpExternalInterruptsCount", + [26] =3D "VpExternalInterruptsTime", + [27] =3D "VpPendingInterruptsCount", + [28] =3D "VpPendingInterruptsTime", + [29] =3D "VpEmulatedInstructionsCount", + [30] =3D "VpEmulatedInstructionsTime", + [31] =3D "VpDebugRegisterAccessesCount", + [32] =3D "VpDebugRegisterAccessesTime", + [33] =3D "VpPageFaultInterceptsCount", + [34] =3D "VpPageFaultInterceptsTime", + [35] =3D "VpGuestPageTableMaps", + [36] =3D "VpLargePageTlbFills", + [37] =3D "VpSmallPageTlbFills", + [38] =3D "VpReflectedGuestPageFaults", + [39] =3D "VpApicMmioAccesses", + [40] =3D "VpIoInterceptMessages", + [41] =3D "VpMemoryInterceptMessages", + [42] =3D "VpApicEoiAccesses", + [43] =3D "VpOtherMessages", + [44] =3D "VpPageTableAllocations", + [45] =3D "VpLogicalProcessorMigrations", + [46] =3D "VpAddressSpaceEvictions", + [47] =3D "VpAddressSpaceSwitches", + [48] =3D "VpAddressDomainFlushes", + [49] =3D "VpAddressSpaceFlushes", + [50] =3D "VpGlobalGvaRangeFlushes", + [51] =3D "VpLocalGvaRangeFlushes", + [52] =3D "VpPageTableEvictions", + [53] =3D "VpPageTableReclamations", + [54] =3D "VpPageTableResets", + [55] =3D "VpPageTableValidations", + [56] =3D "VpApicTprAccesses", + [57] =3D "VpPageTableWriteIntercepts", + [58] =3D "VpSyntheticInterrupts", + [59] =3D "VpVirtualInterrupts", + [60] =3D "VpApicIpisSent", + [61] =3D "VpApicSelfIpisSent", + [62] =3D "VpGpaSpaceHypercalls", + [63] =3D "VpLogicalProcessorHypercalls", + [64] =3D "VpLongSpinWaitHypercalls", + [65] =3D "VpOtherHypercalls", + [66] =3D "VpSyntheticInterruptHypercalls", + [67] =3D "VpVirtualInterruptHypercalls", + [68] =3D "VpVirtualMmuHypercalls", + [69] =3D "VpVirtualProcessorHypercalls", + [70] =3D "VpHardwareInterrupts", + [71] =3D "VpNestedPageFaultInterceptsCount", + [72] =3D "VpNestedPageFaultInterceptsTime", + [73] =3D "VpPageScans", + [74] =3D "VpLogicalProcessorDispatches", + [75] =3D "VpWaitingForCpuTime", + [76] =3D "VpExtendedHypercalls", + [77] =3D "VpExtendedHypercallInterceptMessages", + [78] =3D "VpMbecNestedPageTableSwitches", + [79] =3D "VpOtherReflectedGuestExceptions", + [80] =3D "VpGlobalIoTlbFlushes", + [81] =3D "VpGlobalIoTlbFlushCost", + [82] =3D "VpLocalIoTlbFlushes", + [83] =3D "VpLocalIoTlbFlushCost", + [84] =3D "VpHypercallsForwardedCount", + [85] =3D "VpHypercallsForwardingTime", + [86] =3D "VpPageInvalidationsForwardedCount", + [87] =3D "VpPageInvalidationsForwardingTime", + [88] =3D "VpControlRegisterAccessesForwardedCount", + [89] =3D "VpControlRegisterAccessesForwardingTime", + [90] =3D "VpIoInstructionsForwardedCount", + [91] =3D "VpIoInstructionsForwardingTime", + [92] =3D "VpHltInstructionsForwardedCount", + [93] =3D "VpHltInstructionsForwardingTime", + [94] =3D "VpMwaitInstructionsForwardedCount", + [95] =3D "VpMwaitInstructionsForwardingTime", + [96] =3D "VpCpuidInstructionsForwardedCount", + [97] =3D "VpCpuidInstructionsForwardingTime", + [98] =3D "VpMsrAccessesForwardedCount", + [99] =3D "VpMsrAccessesForwardingTime", + [100] =3D "VpOtherInterceptsForwardedCount", + [101] =3D "VpOtherInterceptsForwardingTime", + [102] =3D "VpExternalInterruptsForwardedCount", + [103] =3D "VpExternalInterruptsForwardingTime", + [104] =3D "VpPendingInterruptsForwardedCount", + [105] =3D "VpPendingInterruptsForwardingTime", + [106] =3D "VpEmulatedInstructionsForwardedCount", + [107] =3D "VpEmulatedInstructionsForwardingTime", + [108] =3D "VpDebugRegisterAccessesForwardedCount", + [109] =3D "VpDebugRegisterAccessesForwardingTime", + [110] =3D "VpPageFaultInterceptsForwardedCount", + [111] =3D "VpPageFaultInterceptsForwardingTime", + [112] =3D "VpVmclearEmulationCount", + [113] =3D "VpVmclearEmulationTime", + [114] =3D "VpVmptrldEmulationCount", + [115] =3D "VpVmptrldEmulationTime", + [116] =3D "VpVmptrstEmulationCount", + [117] =3D "VpVmptrstEmulationTime", + [118] =3D "VpVmreadEmulationCount", + [119] =3D "VpVmreadEmulationTime", + [120] =3D "VpVmwriteEmulationCount", + [121] =3D "VpVmwriteEmulationTime", + [122] =3D "VpVmxoffEmulationCount", + [123] =3D "VpVmxoffEmulationTime", + [124] =3D "VpVmxonEmulationCount", + [125] =3D "VpVmxonEmulationTime", + [126] =3D "VpNestedVMEntriesCount", + [127] =3D "VpNestedVMEntriesTime", + [128] =3D "VpNestedSLATSoftPageFaultsCount", + [129] =3D "VpNestedSLATSoftPageFaultsTime", + [130] =3D "VpNestedSLATHardPageFaultsCount", + [131] =3D "VpNestedSLATHardPageFaultsTime", + [132] =3D "VpInvEptAllContextEmulationCount", + [133] =3D "VpInvEptAllContextEmulationTime", + [134] =3D "VpInvEptSingleContextEmulationCount", + [135] =3D "VpInvEptSingleContextEmulationTime", + [136] =3D "VpInvVpidAllContextEmulationCount", + [137] =3D "VpInvVpidAllContextEmulationTime", + [138] =3D "VpInvVpidSingleContextEmulationCount", + [139] =3D "VpInvVpidSingleContextEmulationTime", + [140] =3D "VpInvVpidSingleAddressEmulationCount", + [141] =3D "VpInvVpidSingleAddressEmulationTime", + [142] =3D "VpNestedTlbPageTableReclamations", + [143] =3D "VpNestedTlbPageTableEvictions", + [144] =3D "VpFlushGuestPhysicalAddressSpaceHypercalls", + [145] =3D "VpFlushGuestPhysicalAddressListHypercalls", + [146] =3D "VpPostedInterruptNotifications", + [147] =3D "VpPostedInterruptScans", + [148] =3D "VpTotalCoreRunTime", + [149] =3D "VpMaximumRunTime", + [150] =3D "VpHwpRequestContextSwitches", + [151] =3D "VpWaitingForCpuTimeBucket0", + [152] =3D "VpWaitingForCpuTimeBucket1", + [153] =3D "VpWaitingForCpuTimeBucket2", + [154] =3D "VpWaitingForCpuTimeBucket3", + [155] =3D "VpWaitingForCpuTimeBucket4", + [156] =3D "VpWaitingForCpuTimeBucket5", + [157] =3D "VpWaitingForCpuTimeBucket6", + [158] =3D "VpVmloadEmulationCount", + [159] =3D "VpVmloadEmulationTime", + [160] =3D "VpVmsaveEmulationCount", + [161] =3D "VpVmsaveEmulationTime", + [162] =3D "VpGifInstructionEmulationCount", + [163] =3D "VpGifInstructionEmulationTime", + [164] =3D "VpEmulatedErrataSvmInstructions", + [165] =3D "VpPlaceholder1", + [166] =3D "VpPlaceholder2", + [167] =3D "VpPlaceholder3", + [168] =3D "VpPlaceholder4", + [169] =3D "VpPlaceholder5", + [170] =3D "VpPlaceholder6", + [171] =3D "VpPlaceholder7", + [172] =3D "VpPlaceholder8", + [173] =3D "VpContentionTime", + [174] =3D "VpWakeUpTime", + [175] =3D "VpSchedulingPriority", + [176] =3D "VpRdpmcInstructionsCount", + [177] =3D "VpRdpmcInstructionsTime", + [178] =3D "VpPerfmonPmuMsrAccessesCount", + [179] =3D "VpPerfmonLbrMsrAccessesCount", + [180] =3D "VpPerfmonIptMsrAccessesCount", + [181] =3D "VpPerfmonInterruptCount", + [182] =3D "VpVtl1DispatchCount", + [183] =3D "VpVtl2DispatchCount", + [184] =3D "VpVtl2DispatchBucket0", + [185] =3D "VpVtl2DispatchBucket1", + [186] =3D "VpVtl2DispatchBucket2", + [187] =3D "VpVtl2DispatchBucket3", + [188] =3D "VpVtl2DispatchBucket4", + [189] =3D "VpVtl2DispatchBucket5", + [190] =3D "VpVtl2DispatchBucket6", + [191] =3D "VpVtl1RunTime", + [192] =3D "VpVtl2RunTime", + [193] =3D "VpIommuHypercalls", + [194] =3D "VpCpuGroupHypercalls", + [195] =3D "VpVsmHypercalls", + [196] =3D "VpEventLogHypercalls", + [197] =3D "VpDeviceDomainHypercalls", + [198] =3D "VpDepositHypercalls", + [199] =3D "VpSvmHypercalls", + [200] =3D "VpBusLockAcquisitionCount", + [201] =3D "VpLoadAvg", + [202] =3D "VpRootDispatchThreadBlocked", + [203] =3D "VpIdleCpuTime", + [204] =3D "VpWaitingForCpuTimeBucket7", + [205] =3D "VpWaitingForCpuTimeBucket8", + [206] =3D "VpWaitingForCpuTimeBucket9", + [207] =3D "VpWaitingForCpuTimeBucket10", + [208] =3D "VpWaitingForCpuTimeBucket11", + [209] =3D "VpWaitingForCpuTimeBucket12", + [210] =3D "VpHierarchicalSuspendTime", + [211] =3D "VpExpressSchedulingAttempts", + [212] =3D "VpExpressSchedulingCount", +#elif IS_ENABLED(CONFIG_ARM64) + [9] =3D "VpSysRegAccessesCount", + [10] =3D "VpSysRegAccessesTime", + [11] =3D "VpSmcInstructionsCount", + [12] =3D "VpSmcInstructionsTime", + [13] =3D "VpOtherInterceptsCount", + [14] =3D "VpOtherInterceptsTime", + [15] =3D "VpExternalInterruptsCount", + [16] =3D "VpExternalInterruptsTime", + [17] =3D "VpPendingInterruptsCount", + [18] =3D "VpPendingInterruptsTime", + [19] =3D "VpGuestPageTableMaps", + [20] =3D "VpLargePageTlbFills", + [21] =3D "VpSmallPageTlbFills", + [22] =3D "VpReflectedGuestPageFaults", + [23] =3D "VpMemoryInterceptMessages", + [24] =3D "VpOtherMessages", + [25] =3D "VpLogicalProcessorMigrations", + [26] =3D "VpAddressDomainFlushes", + [27] =3D "VpAddressSpaceFlushes", + [28] =3D "VpSyntheticInterrupts", + [29] =3D "VpVirtualInterrupts", + [30] =3D "VpApicSelfIpisSent", + [31] =3D "VpGpaSpaceHypercalls", + [32] =3D "VpLogicalProcessorHypercalls", + [33] =3D "VpLongSpinWaitHypercalls", + [34] =3D "VpOtherHypercalls", + [35] =3D "VpSyntheticInterruptHypercalls", + [36] =3D "VpVirtualInterruptHypercalls", + [37] =3D "VpVirtualMmuHypercalls", + [38] =3D "VpVirtualProcessorHypercalls", + [39] =3D "VpHardwareInterrupts", + [40] =3D "VpNestedPageFaultInterceptsCount", + [41] =3D "VpNestedPageFaultInterceptsTime", + [42] =3D "VpLogicalProcessorDispatches", + [43] =3D "VpWaitingForCpuTime", + [44] =3D "VpExtendedHypercalls", + [45] =3D "VpExtendedHypercallInterceptMessages", + [46] =3D "VpMbecNestedPageTableSwitches", + [47] =3D "VpOtherReflectedGuestExceptions", + [48] =3D "VpGlobalIoTlbFlushes", + [49] =3D "VpGlobalIoTlbFlushCost", + [50] =3D "VpLocalIoTlbFlushes", + [51] =3D "VpLocalIoTlbFlushCost", + [52] =3D "VpFlushGuestPhysicalAddressSpaceHypercalls", + [53] =3D "VpFlushGuestPhysicalAddressListHypercalls", + [54] =3D "VpPostedInterruptNotifications", + [55] =3D "VpPostedInterruptScans", + [56] =3D "VpTotalCoreRunTime", + [57] =3D "VpMaximumRunTime", + [58] =3D "VpWaitingForCpuTimeBucket0", + [59] =3D "VpWaitingForCpuTimeBucket1", + [60] =3D "VpWaitingForCpuTimeBucket2", + [61] =3D "VpWaitingForCpuTimeBucket3", + [62] =3D "VpWaitingForCpuTimeBucket4", + [63] =3D "VpWaitingForCpuTimeBucket5", + [64] =3D "VpWaitingForCpuTimeBucket6", + [65] =3D "VpHwpRequestContextSwitches", + [66] =3D "VpPlaceholder2", + [67] =3D "VpPlaceholder3", + [68] =3D "VpPlaceholder4", + [69] =3D "VpPlaceholder5", + [70] =3D "VpPlaceholder6", + [71] =3D "VpPlaceholder7", + [72] =3D "VpPlaceholder8", + [73] =3D "VpContentionTime", + [74] =3D "VpWakeUpTime", + [75] =3D "VpSchedulingPriority", + [76] =3D "VpVtl1DispatchCount", + [77] =3D "VpVtl2DispatchCount", + [78] =3D "VpVtl2DispatchBucket0", + [79] =3D "VpVtl2DispatchBucket1", + [80] =3D "VpVtl2DispatchBucket2", + [81] =3D "VpVtl2DispatchBucket3", + [82] =3D "VpVtl2DispatchBucket4", + [83] =3D "VpVtl2DispatchBucket5", + [84] =3D "VpVtl2DispatchBucket6", + [85] =3D "VpVtl1RunTime", + [86] =3D "VpVtl2RunTime", + [87] =3D "VpIommuHypercalls", + [88] =3D "VpCpuGroupHypercalls", + [89] =3D "VpVsmHypercalls", + [90] =3D "VpEventLogHypercalls", + [91] =3D "VpDeviceDomainHypercalls", + [92] =3D "VpDepositHypercalls", + [93] =3D "VpSvmHypercalls", + [94] =3D "VpLoadAvg", + [95] =3D "VpRootDispatchThreadBlocked", + [96] =3D "VpIdleCpuTime", + [97] =3D "VpWaitingForCpuTimeBucket7", + [98] =3D "VpWaitingForCpuTimeBucket8", + [99] =3D "VpWaitingForCpuTimeBucket9", + [100] =3D "VpWaitingForCpuTimeBucket10", + [101] =3D "VpWaitingForCpuTimeBucket11", + [102] =3D "VpWaitingForCpuTimeBucket12", + [103] =3D "VpHierarchicalSuspendTime", + [104] =3D "VpExpressSchedulingAttempts", + [105] =3D "VpExpressSchedulingCount", +#endif +}; --=20 2.34.1