lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ