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] [day] [month] [year] [list]
Message-ID: <aXuePjKM6-57aOOn@skinsburskii.localdomain>
Date: Thu, 29 Jan 2026 09:51:58 -0800
From: Stanislav Kinsburskii <skinsburskii@...ux.microsoft.com>
To: Nuno Das Neves <nunodasneves@...ux.microsoft.com>
Cc: linux-hyperv@...r.kernel.org, linux-kernel@...r.kernel.org,
	mhklinux@...look.com, kys@...rosoft.com, haiyangz@...rosoft.com,
	wei.liu@...nel.org, decui@...rosoft.com, longli@...rosoft.com,
	prapal@...ux.microsoft.com, mrathor@...ux.microsoft.com,
	paekkaladevi@...ux.microsoft.com
Subject: Re: [PATCH v6 0/7] mshv: Debugfs interface for mshv_root

On Wed, Jan 28, 2026 at 10:11:39AM -0800, Nuno Das Neves wrote:
> Expose hypervisor, logical processor, partition, and virtual processor
> statistics via debugfs. These are provided by mapping 'stats' pages via
> hypercall.
> 

For the whole series:

Acked-by: Stanislav Kinsburskii <skinsburskii@...ux.microsoft.com>

> Patch #1: Update hv_call_map_stats_page() to return success when
>           HV_STATS_AREA_PARENT is unavailable, which is the case on some
>           hypervisor versions, where it can fall back to HV_STATS_AREA_SELF
> Patch #2: Use struct hv_stats_page pointers instead of void *
> Patch #3: Make mshv_vp_stats_map/unmap() more flexible to use with debugfs
>           code
> Patch #4: Always map vp stats page regardless of scheduler, to reuse in
>           debugfs
> Patch #5: Change to hv_stats_page definition and
>           VpRootDispatchThreadBlocked
> Patch #6: Introduce the definitions needed for the various stats pages
> Patch #7: Add mshv_debugfs.c, and integrate it with the mshv_root driver to
>           expose the partition and VP stats.
> 
> ---
> Changes in v6:
> - Fix whitespace and other checkpatch issues [Michael]
> 
> Changes in v5:
> - Rename hv_counters.c to mshv_debugfs_counters.c [Michael]
> - Clarify unusual inclusion of mshv_debugfs_counters.c with comment. After
>   discussion it is still included directly to keep things simple. Including
>   arrays with unspecified size via a header means sizeof() cannot be used on
>   the array.
> - Error if mshv_debugfs_counters.c is included elsewhere than mshv_debugfs.c
> - Use array index as stats page index to save space [Stanislav]
> - Enforce HV_STATS_AREA_PARENT and SELF fit in NUM_STATS_AREAS with
>   static_assert and clarify with comment [Michael]
> - Return to using lp count from hv stats page for mshv_lps_count [Michael]
> - Use nr_cpu_ids instead of num_possible_cpus() [Michael]
> - Set mshv_lps_stats[idx] and the array itself to NULL on unmap and cleanup
>   [Michael]
> - Rename HvLogicalProcessors and VpRootDispatchThreadBlocked to Linux style
> - Translate Linux cpu index to vp index via hv_vp_index on partition destroy
>   [Michael]
> - Minor formatting cleanups [Michael]
> 
> Changes in v4:
> - Put the counters definitions in static arrays in hv_counters.c, instead of
>   as enums in hvhdk.h [Michael]
> - Due to the above, add an additional patch (#5) to simplify hv_stats_page,
>   and retain the enum definition at the top of mshv_root_main.c for use with
>   VpRootDispatchThreadBlocked. That is the only remaining use of the counter
>   enum.
> - Due to the above, use num_present_cpus() as the number of LPs to map stats
>   pages for - this number shouldn't change at runtime because the hypervisor
>   doesn't support hotplug for root partition.
> 
> Changes in v3:
> - Add 3 small refactor/cleanup patches (patches 2,3,4) from Stanislav. These
>   simplify some of the debugfs code, and fix issues with mapping VP stats on
>   L1VH.
> - Fix cleanup of parent stats dentries on module removal (via squashing some
>   internal patches into patch #6) [Praveen]
> - Remove unused goto label [Stanislav, kernel bot]
> - Use struct hv_stats_page * instead of void * in mshv_debugfs.c [Stanislav]
> - Remove some redundant variables [Stanislav]
> - Rename debugfs dentry fields for brevity [Stanislav]
> - Use ERR_CAST() for the dentry error pointer returned from
>   lp_debugfs_stats_create() [Stanislav]
> - Fix leak of pages allocated for lp stats mappings by storing them in an array
>   [Michael]
> - Add comments to clarify PARENT vs SELF usage and edge cases [Michael]
> - Add VpLoadAvg for x86 and print the stat [Michael]
> - Add NUM_STATS_AREAS for array sizing in mshv_debugfs.c [Michael]
> 
> Changes in v2:
> - Remove unnecessary pr_debug_once() in patch 1 [Stanislav Kinsburskii]
> - CONFIG_X86 -> CONFIG_X86_64 in patch 2 [Stanislav Kinsburskii]
> 
> ---
> Nuno Das Neves (3):
>   mshv: Update hv_stats_page definitions
>   mshv: Add data for printing stats page counters
>   mshv: Add debugfs to view hypervisor statistics
> 
> Purna Pavan Chandra Aekkaladevi (1):
>   mshv: Ignore second stats page map result failure
> 
> Stanislav Kinsburskii (3):
>   mshv: Use typed hv_stats_page pointers
>   mshv: Improve mshv_vp_stats_map/unmap(), add them to mshv_root.h
>   mshv: Always map child vp stats pages regardless of scheduler type
> 
>  drivers/hv/Makefile                |   1 +
>  drivers/hv/mshv_debugfs.c          | 726 +++++++++++++++++++++++++++++
>  drivers/hv/mshv_debugfs_counters.c | 490 +++++++++++++++++++
>  drivers/hv/mshv_root.h             |  49 +-
>  drivers/hv/mshv_root_hv_call.c     |  64 ++-
>  drivers/hv/mshv_root_main.c        | 140 +++---
>  include/hyperv/hvhdk.h             |   7 +
>  7 files changed, 1412 insertions(+), 65 deletions(-)
>  create mode 100644 drivers/hv/mshv_debugfs.c
>  create mode 100644 drivers/hv/mshv_debugfs_counters.c
> 
> -- 
> 2.34.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ