From: Easwar Hariharan <easwar.hariharan@linux.microsoft.com>
To: Nuno Das Neves <nunodasneves@linux.microsoft.com>
Cc: easwar.hariharan@linux.microsoft.com,
linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org,
mhklinux@outlook.com, decui@microsoft.com,
paekkaladevi@linux.microsoft.com
Subject: Re: [PATCH 2/6] mshv: Ignore second stats page map result failure
Date: Mon, 8 Sep 2025 10:22:21 -0700 [thread overview]
Message-ID: <7b4fafc7-cf89-45f6-ac5c-59a4c9f53f79@linux.microsoft.com> (raw)
In-Reply-To: <874a2370-84f1-4cec-bb06-a13fe11b49ca@linux.microsoft.com>
On 9/8/2025 10:04 AM, Nuno Das Neves wrote:
> On 9/5/2025 12:21 PM, Easwar Hariharan wrote:
>> On 8/28/2025 5:43 PM, Nuno Das Neves wrote:
>>> From: Purna Pavan Chandra Aekkaladevi <paekkaladevi@linux.microsoft.com>
>>>
>>> Some versions of the hypervisor do not support HV_STATUS_AREA_PARENT and
>>> return HV_STATUS_INVALID_PARAMETER for the second stats page mapping
>>> request.
>>>
>>> This results a failure in module init. Instead of failing, gracefully
>>> fall back to populating stats_pages[HV_STATS_AREA_PARENT] with the
>>> already-mapped stats_pages[HV_STATS_AREA_SELF].
>>
>> What's the impact of this graceful fallback? It occurs to me that if a stats
>> accumulator, in userspace perhaps, expected to get stats from the 2 pages,
>> it'd get incorrect values.
>>
> This is going out of scope of this series a bit but I'll explain briefly.
>
> When we do add the code to expose these stats to userspace, the SELF and
> PARENT pages won't be exposed separately, there is no duplication.
>
> For each stat counter in the page, we'll expose either the SELF or PARENT
> value, depending on whether there is anything in that slot (whether it's zero
> or not).
>
> Some stats are available via the SELF page, and some via the PARENT page, but
> the counters in the page have the same layout. So some counters in the SELF
> page will all stay zero while on the PARENT page they are updated, and vice
> versa.
>
> I believe the hypervisor takes this strange approach for the purpose of
> backward compatibility. Introducing L1VH created the need for this SELF/PARENT
> distinction.
>
> Hope that makes some kind of sense...it will be clearer when we post the mshv
> debugfs code itself.
>
> To put it another way, falling back to the SELF page won't cause any impact
> to userspace because the distinction between the pages is all handled in the
> driver, and we only read each stat value from either SELF or PARENT.
>
> Nuno
Thank you for that explanation, it sorta makes sense.
I think it'd be better if this patch is part of the series that exposes the stats
to userspace, so that it can be reviewed in context with the rest of the code in
the driver that manages the pick-and-choose of a stat value from the SELF/PARENT
page.
Unless there's an active problem now in the upstream kernel that this patch solves?
i.e. are the versions of the hypervisor that don't support the PARENT stats
page available in the wild?
Thanks,
Easwar (he/him)
next prev parent reply other threads:[~2025-09-08 17:22 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-29 0:43 [PATCH 0/6] mshv: Fixes for stats and vp state page mappings Nuno Das Neves
2025-08-29 0:43 ` [PATCH 1/6] mshv: Only map vp->vp_stats_pages if on root scheduler Nuno Das Neves
2025-09-04 17:00 ` Anirudh Rayabharam
2025-09-05 15:20 ` Praveen K Paladugu
2025-09-05 19:43 ` Easwar Hariharan
2025-09-06 7:11 ` Tianyu Lan
2025-08-29 0:43 ` [PATCH 2/6] mshv: Ignore second stats page map result failure Nuno Das Neves
2025-09-05 15:31 ` Praveen K Paladugu
2025-09-05 18:48 ` Nuno Das Neves
2025-09-05 19:21 ` Easwar Hariharan
2025-09-08 17:04 ` Nuno Das Neves
2025-09-08 17:22 ` Easwar Hariharan [this message]
2025-09-08 18:06 ` Nuno Das Neves
2025-09-09 14:52 ` Praveen K Paladugu
2025-09-09 16:27 ` Easwar Hariharan
2025-09-09 17:31 ` Nuno Das Neves
2025-09-06 17:30 ` Tianyu Lan
2025-08-29 0:43 ` [PATCH 3/6] mshv: Add the HVCALL_GET_PARTITION_PROPERTY_EX hypercall Nuno Das Neves
2025-09-04 17:12 ` Anirudh Rayabharam
2025-09-05 15:40 ` Praveen K Paladugu
2025-09-05 19:28 ` Easwar Hariharan
2025-09-05 23:13 ` Nuno Das Neves
2025-08-29 0:43 ` [PATCH 4/6] mshv: Get the vmm capabilities offered by the hypervisor Nuno Das Neves
2025-09-05 15:43 ` Praveen K Paladugu
2025-09-05 18:49 ` Nuno Das Neves
2025-09-05 19:03 ` Anirudh Rayabharam
2025-09-05 23:07 ` Nuno Das Neves
2025-09-05 19:29 ` Easwar Hariharan
2025-09-06 17:34 ` Tianyu Lan
2025-08-29 0:43 ` [PATCH 5/6] mshv: Allocate vp state page for HVCALL_MAP_VP_STATE_PAGE on L1VH Nuno Das Neves
2025-09-05 16:18 ` Praveen K Paladugu
2025-09-05 19:41 ` Easwar Hariharan
2025-08-29 0:43 ` [PATCH 6/6] mshv: Introduce new hypercall to map stats page for L1VH partitions Nuno Das Neves
2025-09-05 19:50 ` Easwar Hariharan
2025-09-05 23:12 ` Nuno Das Neves
2025-09-08 16:26 ` Easwar Hariharan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b4fafc7-cf89-45f6-ac5c-59a4c9f53f79@linux.microsoft.com \
--to=easwar.hariharan@linux.microsoft.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.com \
--cc=nunodasneves@linux.microsoft.com \
--cc=paekkaladevi@linux.microsoft.com \
--cc=wei.liu@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox