On Fri, Dec 05, 2025 at 10:58:41AM -0800, Nuno Das Neves wrote:
> 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
> the stats out, and retain more readability in this form.
> 

Acked-by: Stanislav Kinsburskii <[email protected]>

> Signed-off-by: Nuno Das Neves <[email protected]>
> ---
>  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,
> +#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
> + */
> +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

Reply via email to