From: Nuno Das Neves <[email protected]> Sent: Tuesday, December 
30, 2025 3:04 PM
> 
> On 12/8/2025 7:13 AM, Michael Kelley wrote:
> > From: Nuno Das Neves <[email protected]> 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 <[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,
> >
> > 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?

I don’t see a need for a separate patch. Maybe just put a short note
about the change in the commit message for this patch, so that it is
recorded as intentional and not a random typo. Long lists like these
have been known to get fat-fingered from time-to-time. :-)

> 
> >> +#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

Reply via email to