[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <991e7df9-d814-48a9-9469-a0b2f72acabb@linux.microsoft.com>
Date: Fri, 21 Feb 2025 12:01:36 -0800
From: Nuno Das Neves <nunodasneves@...ux.microsoft.com>
To: linux-hyperv@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org,
iommu@...ts.linux.dev, mhklinux@...look.com, eahariha@...ux.microsoft.com,
mukeshrathor@...rosoft.com
Cc: kys@...rosoft.com, haiyangz@...rosoft.com, wei.liu@...nel.org,
decui@...rosoft.com, catalin.marinas@....com, will@...nel.org,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
dave.hansen@...ux.intel.com, x86@...nel.org, hpa@...or.com,
daniel.lezcano@...aro.org, joro@...tes.org, robin.murphy@....com,
arnd@...db.de, jinankjain@...ux.microsoft.com, muminulrussell@...il.com,
skinsburskii@...ux.microsoft.com
Subject: Re: [PATCH v2 0/3] Introduce CONFIG_MSHV_ROOT for root partition code
The subject line says v2 but this is actually v3!
Nuno
On 2/21/2025 11:56 AM, Nuno Das Neves wrote:
> Running in the root partition is a unique and specialized case that
> requires additional code. CONFIG_MSHV_ROOT allows Hyper-V guest kernels
> to exclude this code, which is important since significant additional code
> specific to the root partition is expected to be added over time.
>
> To do this, change hv_root_partition to be a function which is stubbed out
> to return false if CONFIG_MSHV_ROOT=n, and don't compile hv_proc.c at all,
> stubbing out those functions with inline versions.
>
> Store the partition type (guest or root) in an enum hv_curr_partition_type,
> which can be extended beyond just guest and root partition.
>
> While at it, introduce hv_result_to_errno() to convert Hyper-V status codes
> to regular linux errors. This is useful because the caller of a hypercall
> helper function (such as those in hv_proc.c) usually can't and doesn't
> interpret the Hyper-V status, so it is better to convert it to an error code
> and reduce the possibility of misinterpreting it. This also alows the stubbed
> versions of the hv_proc.c functions to just return a linux error code.
>
> Signed-off-by: Nuno Das Neves <nunodasneves@...ux.microsoft.com>
> ---
> Changes in v3:
> * Fix a typo [Easwar Hariharan]
> * Fix ret being initialized to HV_STATUS_SUCCESS in some hypercall helpers
> [Michael Kelley]
> * Fix CONFIG_MSHV_ROOT being used in patch 2, before it is defined [Michael
> Kelley]
> * Shorten hv_current_partition_type to hv_curr_partition_type [Mukesh Rathor]
>
> Changes in v2:
> * Add patch to convert hypercall statuses to linux error codes [Easwar
> Hariharan]
> * While at it, split the original patch into two logical pieces, one to change
> hv_root_partition into a function, and one to introduce MSHV_CONFIG_ROOT
> * Improve the clarity of and add an error message to
> hv_identify_partition_type() [Easwar Hariharan] [Michael Kelley]
> * Better explain *why* the patches are useful, in the commit messages [Michael
> Kelley]
> * Add a Kconfig comment explaining why PAGE_SIZE_4KB is needed [Michael Kelley]
> * Minor style and typo fixes
>
> Nuno Das Neves (3):
> hyperv: Convert hypercall statuses to linux error codes
> hyperv: Change hv_root_partition into a function
> hyperv: Add CONFIG_MSHV_ROOT to gate root partition support
>
> arch/arm64/hyperv/mshyperv.c | 2 +
> arch/x86/hyperv/hv_init.c | 10 ++---
> arch/x86/kernel/cpu/mshyperv.c | 24 +----------
> drivers/clocksource/hyperv_timer.c | 4 +-
> drivers/hv/Kconfig | 16 +++++++
> drivers/hv/Makefile | 3 +-
> drivers/hv/hv.c | 10 ++---
> drivers/hv/hv_common.c | 69 +++++++++++++++++++++++++++---
> drivers/hv/hv_proc.c | 10 ++---
> drivers/hv/vmbus_drv.c | 2 +-
> drivers/iommu/hyperv-iommu.c | 4 +-
> include/asm-generic/mshyperv.h | 40 ++++++++++++++---
> 12 files changed, 139 insertions(+), 55 deletions(-)
>
Powered by blists - more mailing lists