[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <30cf6cd4-9826-425c-b3f1-465bfa372e01@linux.microsoft.com>
Date: Tue, 30 Dec 2025 15:04:28 -0800
From: Nuno Das Neves <nunodasneves@...ux.microsoft.com>
To: Michael Kelley <mhklinux@...look.com>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"skinsburskii@...ux.microsoft.com" <skinsburskii@...ux.microsoft.com>
Cc: "kys@...rosoft.com" <kys@...rosoft.com>,
"haiyangz@...rosoft.com" <haiyangz@...rosoft.com>,
"wei.liu@...nel.org" <wei.liu@...nel.org>,
"decui@...rosoft.com" <decui@...rosoft.com>,
"longli@...rosoft.com" <longli@...rosoft.com>,
"prapal@...ux.microsoft.com" <prapal@...ux.microsoft.com>,
"mrathor@...ux.microsoft.com" <mrathor@...ux.microsoft.com>,
"paekkaladevi@...ux.microsoft.com" <paekkaladevi@...ux.microsoft.com>
Subject: Re: [PATCH v2 2/3] mshv: Add definitions for stats pages
On 12/8/2025 7:13 AM, Michael Kelley wrote:
> From: Nuno Das Neves <nunodasneves@...ux.microsoft.com> Sent: Friday, December 5, 2025 10:59 AM
>>
>> Add the definitions for hypervisor, logical processor, and partition
>> stats pages.
>>
>> Move the definition for the VP stats page to its rightful place in
>> hvhdk.h, and add the missing members.
>>
>> These enum members retain their CamelCase style, since they are imported
>> directly from the hypervisor code They will be stringified when printing
>
> Missing a '.' (period) after "hypervisor code".
>
Ack
>> the stats out, and retain more readability in this form.
>>
>> Signed-off-by: Nuno Das Neves <nunodasneves@...ux.microsoft.com>
>> ---
>> drivers/hv/mshv_root_main.c | 17 --
>> include/hyperv/hvhdk.h | 437 ++++++++++++++++++++++++++++++++++++
>> 2 files changed, 437 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c
>> index f59a4ab47685..19006b788e85 100644
>> --- a/drivers/hv/mshv_root_main.c
>> +++ b/drivers/hv/mshv_root_main.c
>> @@ -38,23 +38,6 @@ MODULE_AUTHOR("Microsoft");
>> MODULE_LICENSE("GPL");
>> MODULE_DESCRIPTION("Microsoft Hyper-V root partition VMM interface
>> /dev/mshv");
>>
>> -/* TODO move this to another file when debugfs code is added */
>> -enum hv_stats_vp_counters { /* HV_THREAD_COUNTER */
>> -#if defined(CONFIG_X86)
>> - VpRootDispatchThreadBlocked = 202,
>> -#elif defined(CONFIG_ARM64)
>> - VpRootDispatchThreadBlocked = 94,
>> -#endif
>> - VpStatsMaxCounter
>> -};
>> -
>> -struct hv_stats_page {
>> - union {
>> - u64 vp_cntrs[VpStatsMaxCounter]; /* VP counters */
>> - u8 data[HV_HYP_PAGE_SIZE];
>> - };
>> -} __packed;
>> -
>> struct mshv_root mshv_root;
>>
>> enum hv_scheduler_type hv_scheduler_type;
>> diff --git a/include/hyperv/hvhdk.h b/include/hyperv/hvhdk.h
>> index 469186df7826..51abbcd0ec37 100644
>> --- a/include/hyperv/hvhdk.h
>> +++ b/include/hyperv/hvhdk.h
>> @@ -10,6 +10,443 @@
>> #include "hvhdk_mini.h"
>> #include "hvgdk.h"
>>
>> +enum hv_stats_hypervisor_counters { /* HV_HYPERVISOR_COUNTER */
>> + HvLogicalProcessors = 1,
>> + HvPartitions = 2,
>> + HvTotalPages = 3,
>> + HvVirtualProcessors = 4,
>> + HvMonitoredNotifications = 5,
>> + HvModernStandbyEntries = 6,
>> + HvPlatformIdleTransitions = 7,
>> + HvHypervisorStartupCost = 8,
>> + HvIOSpacePages = 10,
>> + HvNonEssentialPagesForDump = 11,
>> + HvSubsumedPages = 12,
>> + HvStatsMaxCounter
>> +};
>> +
>> +enum hv_stats_partition_counters { /* HV_PROCESS_COUNTER */
>> + PartitionVirtualProcessors = 1,
>> + PartitionTlbSize = 3,
>> + PartitionAddressSpaces = 4,
>> + PartitionDepositedPages = 5,
>> + PartitionGpaPages = 6,
>> + PartitionGpaSpaceModifications = 7,
>> + PartitionVirtualTlbFlushEntires = 8,
>> + PartitionRecommendedTlbSize = 9,
>> + PartitionGpaPages4K = 10,
>> + PartitionGpaPages2M = 11,
>> + PartitionGpaPages1G = 12,
>> + PartitionGpaPages512G = 13,
>> + PartitionDevicePages4K = 14,
>> + PartitionDevicePages2M = 15,
>> + PartitionDevicePages1G = 16,
>> + PartitionDevicePages512G = 17,
>> + PartitionAttachedDevices = 18,
>> + PartitionDeviceInterruptMappings = 19,
>> + PartitionIoTlbFlushes = 20,
>> + PartitionIoTlbFlushCost = 21,
>> + PartitionDeviceInterruptErrors = 22,
>> + PartitionDeviceDmaErrors = 23,
>> + PartitionDeviceInterruptThrottleEvents = 24,
>> + PartitionSkippedTimerTicks = 25,
>> + PartitionPartitionId = 26,
>> +#if IS_ENABLED(CONFIG_X86_64)
>> + PartitionNestedTlbSize = 27,
>> + PartitionRecommendedNestedTlbSize = 28,
>> + PartitionNestedTlbFreeListSize = 29,
>> + PartitionNestedTlbTrimmedPages = 30,
>> + PartitionPagesShattered = 31,
>> + PartitionPagesRecombined = 32,
>> + PartitionHwpRequestValue = 33,
>> +#elif IS_ENABLED(CONFIG_ARM64)
>> + PartitionHwpRequestValue = 27,
>> +#endif
>> + PartitionStatsMaxCounter
>> +};
>> +
>> +enum hv_stats_vp_counters { /* HV_THREAD_COUNTER */
>> + VpTotalRunTime = 1,
>> + VpHypervisorRunTime = 2,
>> + VpRemoteNodeRunTime = 3,
>> + VpNormalizedRunTime = 4,
>> + VpIdealCpu = 5,
>> + VpHypercallsCount = 7,
>> + VpHypercallsTime = 8,
>> +#if IS_ENABLED(CONFIG_X86_64)
>> + VpPageInvalidationsCount = 9,
>> + VpPageInvalidationsTime = 10,
>> + VpControlRegisterAccessesCount = 11,
>> + VpControlRegisterAccessesTime = 12,
>> + VpIoInstructionsCount = 13,
>> + VpIoInstructionsTime = 14,
>> + VpHltInstructionsCount = 15,
>> + VpHltInstructionsTime = 16,
>> + VpMwaitInstructionsCount = 17,
>> + VpMwaitInstructionsTime = 18,
>> + VpCpuidInstructionsCount = 19,
>> + VpCpuidInstructionsTime = 20,
>> + VpMsrAccessesCount = 21,
>> + VpMsrAccessesTime = 22,
>> + VpOtherInterceptsCount = 23,
>> + VpOtherInterceptsTime = 24,
>> + VpExternalInterruptsCount = 25,
>> + VpExternalInterruptsTime = 26,
>> + VpPendingInterruptsCount = 27,
>> + VpPendingInterruptsTime = 28,
>> + VpEmulatedInstructionsCount = 29,
>> + VpEmulatedInstructionsTime = 30,
>> + VpDebugRegisterAccessesCount = 31,
>> + VpDebugRegisterAccessesTime = 32,
>> + VpPageFaultInterceptsCount = 33,
>> + VpPageFaultInterceptsTime = 34,
>> + VpGuestPageTableMaps = 35,
>> + VpLargePageTlbFills = 36,
>> + VpSmallPageTlbFills = 37,
>> + VpReflectedGuestPageFaults = 38,
>> + VpApicMmioAccesses = 39,
>> + VpIoInterceptMessages = 40,
>> + VpMemoryInterceptMessages = 41,
>> + VpApicEoiAccesses = 42,
>> + VpOtherMessages = 43,
>> + VpPageTableAllocations = 44,
>> + VpLogicalProcessorMigrations = 45,
>> + VpAddressSpaceEvictions = 46,
>> + VpAddressSpaceSwitches = 47,
>> + VpAddressDomainFlushes = 48,
>> + VpAddressSpaceFlushes = 49,
>> + VpGlobalGvaRangeFlushes = 50,
>> + VpLocalGvaRangeFlushes = 51,
>> + VpPageTableEvictions = 52,
>> + VpPageTableReclamations = 53,
>> + VpPageTableResets = 54,
>> + VpPageTableValidations = 55,
>> + VpApicTprAccesses = 56,
>> + VpPageTableWriteIntercepts = 57,
>> + VpSyntheticInterrupts = 58,
>> + VpVirtualInterrupts = 59,
>> + VpApicIpisSent = 60,
>> + VpApicSelfIpisSent = 61,
>> + VpGpaSpaceHypercalls = 62,
>> + VpLogicalProcessorHypercalls = 63,
>> + VpLongSpinWaitHypercalls = 64,
>> + VpOtherHypercalls = 65,
>> + VpSyntheticInterruptHypercalls = 66,
>> + VpVirtualInterruptHypercalls = 67,
>> + VpVirtualMmuHypercalls = 68,
>> + VpVirtualProcessorHypercalls = 69,
>> + VpHardwareInterrupts = 70,
>> + VpNestedPageFaultInterceptsCount = 71,
>> + VpNestedPageFaultInterceptsTime = 72,
>> + VpPageScans = 73,
>> + VpLogicalProcessorDispatches = 74,
>> + VpWaitingForCpuTime = 75,
>> + VpExtendedHypercalls = 76,
>> + VpExtendedHypercallInterceptMessages = 77,
>> + VpMbecNestedPageTableSwitches = 78,
>> + VpOtherReflectedGuestExceptions = 79,
>> + VpGlobalIoTlbFlushes = 80,
>> + VpGlobalIoTlbFlushCost = 81,
>> + VpLocalIoTlbFlushes = 82,
>> + VpLocalIoTlbFlushCost = 83,
>> + VpHypercallsForwardedCount = 84,
>> + VpHypercallsForwardingTime = 85,
>> + VpPageInvalidationsForwardedCount = 86,
>> + VpPageInvalidationsForwardingTime = 87,
>> + VpControlRegisterAccessesForwardedCount = 88,
>> + VpControlRegisterAccessesForwardingTime = 89,
>> + VpIoInstructionsForwardedCount = 90,
>> + VpIoInstructionsForwardingTime = 91,
>> + VpHltInstructionsForwardedCount = 92,
>> + VpHltInstructionsForwardingTime = 93,
>> + VpMwaitInstructionsForwardedCount = 94,
>> + VpMwaitInstructionsForwardingTime = 95,
>> + VpCpuidInstructionsForwardedCount = 96,
>> + VpCpuidInstructionsForwardingTime = 97,
>> + VpMsrAccessesForwardedCount = 98,
>> + VpMsrAccessesForwardingTime = 99,
>> + VpOtherInterceptsForwardedCount = 100,
>> + VpOtherInterceptsForwardingTime = 101,
>> + VpExternalInterruptsForwardedCount = 102,
>> + VpExternalInterruptsForwardingTime = 103,
>> + VpPendingInterruptsForwardedCount = 104,
>> + VpPendingInterruptsForwardingTime = 105,
>> + VpEmulatedInstructionsForwardedCount = 106,
>> + VpEmulatedInstructionsForwardingTime = 107,
>> + VpDebugRegisterAccessesForwardedCount = 108,
>> + VpDebugRegisterAccessesForwardingTime = 109,
>> + VpPageFaultInterceptsForwardedCount = 110,
>> + VpPageFaultInterceptsForwardingTime = 111,
>> + VpVmclearEmulationCount = 112,
>> + VpVmclearEmulationTime = 113,
>> + VpVmptrldEmulationCount = 114,
>> + VpVmptrldEmulationTime = 115,
>> + VpVmptrstEmulationCount = 116,
>> + VpVmptrstEmulationTime = 117,
>> + VpVmreadEmulationCount = 118,
>> + VpVmreadEmulationTime = 119,
>> + VpVmwriteEmulationCount = 120,
>> + VpVmwriteEmulationTime = 121,
>> + VpVmxoffEmulationCount = 122,
>> + VpVmxoffEmulationTime = 123,
>> + VpVmxonEmulationCount = 124,
>> + VpVmxonEmulationTime = 125,
>> + VpNestedVMEntriesCount = 126,
>> + VpNestedVMEntriesTime = 127,
>> + VpNestedSLATSoftPageFaultsCount = 128,
>> + VpNestedSLATSoftPageFaultsTime = 129,
>> + VpNestedSLATHardPageFaultsCount = 130,
>> + VpNestedSLATHardPageFaultsTime = 131,
>> + VpInvEptAllContextEmulationCount = 132,
>> + VpInvEptAllContextEmulationTime = 133,
>> + VpInvEptSingleContextEmulationCount = 134,
>> + VpInvEptSingleContextEmulationTime = 135,
>> + VpInvVpidAllContextEmulationCount = 136,
>> + VpInvVpidAllContextEmulationTime = 137,
>> + VpInvVpidSingleContextEmulationCount = 138,
>> + VpInvVpidSingleContextEmulationTime = 139,
>> + VpInvVpidSingleAddressEmulationCount = 140,
>> + VpInvVpidSingleAddressEmulationTime = 141,
>> + VpNestedTlbPageTableReclamations = 142,
>> + VpNestedTlbPageTableEvictions = 143,
>> + VpFlushGuestPhysicalAddressSpaceHypercalls = 144,
>> + VpFlushGuestPhysicalAddressListHypercalls = 145,
>> + VpPostedInterruptNotifications = 146,
>> + VpPostedInterruptScans = 147,
>> + VpTotalCoreRunTime = 148,
>> + VpMaximumRunTime = 149,
>> + VpHwpRequestContextSwitches = 150,
>> + VpWaitingForCpuTimeBucket0 = 151,
>> + VpWaitingForCpuTimeBucket1 = 152,
>> + VpWaitingForCpuTimeBucket2 = 153,
>> + VpWaitingForCpuTimeBucket3 = 154,
>> + VpWaitingForCpuTimeBucket4 = 155,
>> + VpWaitingForCpuTimeBucket5 = 156,
>> + VpWaitingForCpuTimeBucket6 = 157,
>> + VpVmloadEmulationCount = 158,
>> + VpVmloadEmulationTime = 159,
>> + VpVmsaveEmulationCount = 160,
>> + VpVmsaveEmulationTime = 161,
>> + VpGifInstructionEmulationCount = 162,
>> + VpGifInstructionEmulationTime = 163,
>> + VpEmulatedErrataSvmInstructions = 164,
>> + VpPlaceholder1 = 165,
>> + VpPlaceholder2 = 166,
>> + VpPlaceholder3 = 167,
>> + VpPlaceholder4 = 168,
>> + VpPlaceholder5 = 169,
>> + VpPlaceholder6 = 170,
>> + VpPlaceholder7 = 171,
>> + VpPlaceholder8 = 172,
>> + VpPlaceholder9 = 173,
>> + VpPlaceholder10 = 174,
>> + VpSchedulingPriority = 175,
>> + VpRdpmcInstructionsCount = 176,
>> + VpRdpmcInstructionsTime = 177,
>> + VpPerfmonPmuMsrAccessesCount = 178,
>> + VpPerfmonLbrMsrAccessesCount = 179,
>> + VpPerfmonIptMsrAccessesCount = 180,
>> + VpPerfmonInterruptCount = 181,
>> + VpVtl1DispatchCount = 182,
>> + VpVtl2DispatchCount = 183,
>> + VpVtl2DispatchBucket0 = 184,
>> + VpVtl2DispatchBucket1 = 185,
>> + VpVtl2DispatchBucket2 = 186,
>> + VpVtl2DispatchBucket3 = 187,
>> + VpVtl2DispatchBucket4 = 188,
>> + VpVtl2DispatchBucket5 = 189,
>> + VpVtl2DispatchBucket6 = 190,
>> + VpVtl1RunTime = 191,
>> + VpVtl2RunTime = 192,
>> + VpIommuHypercalls = 193,
>> + VpCpuGroupHypercalls = 194,
>> + VpVsmHypercalls = 195,
>> + VpEventLogHypercalls = 196,
>> + VpDeviceDomainHypercalls = 197,
>> + VpDepositHypercalls = 198,
>> + VpSvmHypercalls = 199,
>> + VpBusLockAcquisitionCount = 200,
>> + VpUnused = 201,
>> + VpRootDispatchThreadBlocked = 202,
>> +#elif IS_ENABLED(CONFIG_ARM64)
>> + VpSysRegAccessesCount = 9,
>> + VpSysRegAccessesTime = 10,
>> + VpSmcInstructionsCount = 11,
>> + VpSmcInstructionsTime = 12,
>> + VpOtherInterceptsCount = 13,
>> + VpOtherInterceptsTime = 14,
>> + VpExternalInterruptsCount = 15,
>> + VpExternalInterruptsTime = 16,
>> + VpPendingInterruptsCount = 17,
>> + VpPendingInterruptsTime = 18,
>> + VpGuestPageTableMaps = 19,
>> + VpLargePageTlbFills = 20,
>> + VpSmallPageTlbFills = 21,
>> + VpReflectedGuestPageFaults = 22,
>> + VpMemoryInterceptMessages = 23,
>> + VpOtherMessages = 24,
>> + VpLogicalProcessorMigrations = 25,
>> + VpAddressDomainFlushes = 26,
>> + VpAddressSpaceFlushes = 27,
>> + VpSyntheticInterrupts = 28,
>> + VpVirtualInterrupts = 29,
>> + VpApicSelfIpisSent = 30,
>> + VpGpaSpaceHypercalls = 31,
>> + VpLogicalProcessorHypercalls = 32,
>> + VpLongSpinWaitHypercalls = 33,
>> + VpOtherHypercalls = 34,
>> + VpSyntheticInterruptHypercalls = 35,
>> + VpVirtualInterruptHypercalls = 36,
>> + VpVirtualMmuHypercalls = 37,
>> + VpVirtualProcessorHypercalls = 38,
>> + VpHardwareInterrupts = 39,
>> + VpNestedPageFaultInterceptsCount = 40,
>> + VpNestedPageFaultInterceptsTime = 41,
>> + VpLogicalProcessorDispatches = 42,
>> + VpWaitingForCpuTime = 43,
>> + VpExtendedHypercalls = 44,
>> + VpExtendedHypercallInterceptMessages = 45,
>> + VpMbecNestedPageTableSwitches = 46,
>> + VpOtherReflectedGuestExceptions = 47,
>> + VpGlobalIoTlbFlushes = 48,
>> + VpGlobalIoTlbFlushCost = 49,
>> + VpLocalIoTlbFlushes = 50,
>> + VpLocalIoTlbFlushCost = 51,
>> + VpFlushGuestPhysicalAddressSpaceHypercalls = 52,
>> + VpFlushGuestPhysicalAddressListHypercalls = 53,
>> + VpPostedInterruptNotifications = 54,
>> + VpPostedInterruptScans = 55,
>> + VpTotalCoreRunTime = 56,
>> + VpMaximumRunTime = 57,
>> + VpWaitingForCpuTimeBucket0 = 58,
>> + VpWaitingForCpuTimeBucket1 = 59,
>> + VpWaitingForCpuTimeBucket2 = 60,
>> + VpWaitingForCpuTimeBucket3 = 61,
>> + VpWaitingForCpuTimeBucket4 = 62,
>> + VpWaitingForCpuTimeBucket5 = 63,
>> + VpWaitingForCpuTimeBucket6 = 64,
>> + VpHwpRequestContextSwitches = 65,
>> + VpPlaceholder2 = 66,
>> + VpPlaceholder3 = 67,
>> + VpPlaceholder4 = 68,
>> + VpPlaceholder5 = 69,
>> + VpPlaceholder6 = 70,
>> + VpPlaceholder7 = 71,
>> + VpPlaceholder8 = 72,
>> + VpContentionTime = 73,
>> + VpWakeUpTime = 74,
>> + VpSchedulingPriority = 75,
>> + VpVtl1DispatchCount = 76,
>> + VpVtl2DispatchCount = 77,
>> + VpVtl2DispatchBucket0 = 78,
>> + VpVtl2DispatchBucket1 = 79,
>> + VpVtl2DispatchBucket2 = 80,
>> + VpVtl2DispatchBucket3 = 81,
>> + VpVtl2DispatchBucket4 = 82,
>> + VpVtl2DispatchBucket5 = 83,
>> + VpVtl2DispatchBucket6 = 84,
>> + VpVtl1RunTime = 85,
>> + VpVtl2RunTime = 86,
>> + VpIommuHypercalls = 87,
>> + VpCpuGroupHypercalls = 88,
>> + VpVsmHypercalls = 89,
>> + VpEventLogHypercalls = 90,
>> + VpDeviceDomainHypercalls = 91,
>> + VpDepositHypercalls = 92,
>> + VpSvmHypercalls = 93,
>> + VpLoadAvg = 94,
>> + VpRootDispatchThreadBlocked = 95,
>
> In current code, VpRootDispatchThreadBlocked on ARM64 is 94. Is that an
> error that is being corrected by this patch?
>
Hmm, I didn't realize this changed - 95 is the correct value. However,
the mshv driver does not yet support on ARM64, so this fix doesn't
have any impact right now. Do you suggest a separate patch to fix it?
>> +#endif
>> + VpStatsMaxCounter
>> +};
>> +
>> +enum hv_stats_lp_counters { /* HV_CPU_COUNTER */
>> + LpGlobalTime = 1,
>> + LpTotalRunTime = 2,
>> + LpHypervisorRunTime = 3,
>> + LpHardwareInterrupts = 4,
>> + LpContextSwitches = 5,
>> + LpInterProcessorInterrupts = 6,
>> + LpSchedulerInterrupts = 7,
>> + LpTimerInterrupts = 8,
>> + LpInterProcessorInterruptsSent = 9,
>> + LpProcessorHalts = 10,
>> + LpMonitorTransitionCost = 11,
>> + LpContextSwitchTime = 12,
>> + LpC1TransitionsCount = 13,
>> + LpC1RunTime = 14,
>> + LpC2TransitionsCount = 15,
>> + LpC2RunTime = 16,
>> + LpC3TransitionsCount = 17,
>> + LpC3RunTime = 18,
>> + LpRootVpIndex = 19,
>> + LpIdleSequenceNumber = 20,
>> + LpGlobalTscCount = 21,
>> + LpActiveTscCount = 22,
>> + LpIdleAccumulation = 23,
>> + LpReferenceCycleCount0 = 24,
>> + LpActualCycleCount0 = 25,
>> + LpReferenceCycleCount1 = 26,
>> + LpActualCycleCount1 = 27,
>> + LpProximityDomainId = 28,
>> + LpPostedInterruptNotifications = 29,
>> + LpBranchPredictorFlushes = 30,
>> +#if IS_ENABLED(CONFIG_X86_64)
>> + LpL1DataCacheFlushes = 31,
>> + LpImmediateL1DataCacheFlushes = 32,
>> + LpMbFlushes = 33,
>> + LpCounterRefreshSequenceNumber = 34,
>> + LpCounterRefreshReferenceTime = 35,
>> + LpIdleAccumulationSnapshot = 36,
>> + LpActiveTscCountSnapshot = 37,
>> + LpHwpRequestContextSwitches = 38,
>> + LpPlaceholder1 = 39,
>> + LpPlaceholder2 = 40,
>> + LpPlaceholder3 = 41,
>> + LpPlaceholder4 = 42,
>> + LpPlaceholder5 = 43,
>> + LpPlaceholder6 = 44,
>> + LpPlaceholder7 = 45,
>> + LpPlaceholder8 = 46,
>> + LpPlaceholder9 = 47,
>> + LpPlaceholder10 = 48,
>> + LpReserveGroupId = 49,
>> + LpRunningPriority = 50,
>> + LpPerfmonInterruptCount = 51,
>> +#elif IS_ENABLED(CONFIG_ARM64)
>> + LpCounterRefreshSequenceNumber = 31,
>> + LpCounterRefreshReferenceTime = 32,
>> + LpIdleAccumulationSnapshot = 33,
>> + LpActiveTscCountSnapshot = 34,
>> + LpHwpRequestContextSwitches = 35,
>> + LpPlaceholder2 = 36,
>> + LpPlaceholder3 = 37,
>> + LpPlaceholder4 = 38,
>> + LpPlaceholder5 = 39,
>> + LpPlaceholder6 = 40,
>> + LpPlaceholder7 = 41,
>> + LpPlaceholder8 = 42,
>> + LpPlaceholder9 = 43,
>> + LpSchLocalRunListSize = 44,
>> + LpReserveGroupId = 45,
>> + LpRunningPriority = 46,
>> +#endif
>> + LpStatsMaxCounter
>> +};
>> +
>> +/*
>> + * Hypervisor statsitics page format
>
> s/statsitics/statistics/
>
Ack, thanks
>> + */
>> +struct hv_stats_page {
>> + union {
>> + u64 hv_cntrs[HvStatsMaxCounter]; /* Hypervisor counters
>> */
>> + u64 pt_cntrs[PartitionStatsMaxCounter]; /* Partition
>> counters */
>> + u64 vp_cntrs[VpStatsMaxCounter]; /* VP counters */
>> + u64 lp_cntrs[LpStatsMaxCounter]; /* LP counters */
>> + u8 data[HV_HYP_PAGE_SIZE];
>> + };
>> +} __packed;
>> +
>> /* Bits for dirty mask of hv_vp_register_page */
>> #define HV_X64_REGISTER_CLASS_GENERAL 0
>> #define HV_X64_REGISTER_CLASS_IP 1
>> --
>> 2.34.1
Powered by blists - more mailing lists