From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Easwar Hariharan <eahariha@linux.microsoft.com>
Cc: linux-hyperv@vger.kernel.org, x86@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
linux-acpi@vger.kernel.org, kys@microsoft.com,
haiyangz@microsoft.com, wei.liu@kernel.org, mhklinux@outlook.com,
decui@microsoft.com, catalin.marinas@arm.com, will@kernel.org,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, hpa@zytor.com,
daniel.lezcano@linaro.org, joro@8bytes.org, robin.murphy@arm.com,
arnd@arndb.de, jinankjain@linux.microsoft.com,
muminulrussell@gmail.com, skinsburskii@linux.microsoft.com,
mrathor@linux.microsoft.com, ssengar@linux.microsoft.com,
apais@linux.microsoft.com, Tianyu.Lan@microsoft.com,
stanislav.kinsburskiy@gmail.com, gregkh@linuxfoundation.org,
vkuznets@redhat.com, prapal@linux.microsoft.com,
muislam@microsoft.com, anrayabh@linux.microsoft.com,
rafael@kernel.org, lenb@kernel.org, corbet@lwn.net
Subject: Re: [PATCH v5 03/10] arm64/hyperv: Add some missing functions to arm64
Date: Thu, 27 Feb 2025 16:21:14 -0800 [thread overview]
Message-ID: <2fee888a-4f81-40aa-9545-617a49a7fb30@linux.microsoft.com> (raw)
In-Reply-To: <5f3d660d-fe2e-4ac1-94a7-66d6c8ffe579@linux.microsoft.com>
On 2/26/2025 9:56 PM, Easwar Hariharan wrote:
> On 2/26/2025 3:07 PM, Nuno Das Neves wrote:
>> These non-nested msr and fast hypercall functions are present in x86,
>> but they must be available in both architetures for the root partition
>
> nit: *architectures*
>
>
Thanks!
>> driver code.
>>
>> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>> ---
>> arch/arm64/hyperv/hv_core.c | 17 +++++++++++++++++
>> arch/arm64/include/asm/mshyperv.h | 12 ++++++++++++
>> include/asm-generic/mshyperv.h | 2 ++
>> 3 files changed, 31 insertions(+)
>>
>> diff --git a/arch/arm64/hyperv/hv_core.c b/arch/arm64/hyperv/hv_core.c
>> index 69004f619c57..e33a9e3c366a 100644
>> --- a/arch/arm64/hyperv/hv_core.c
>> +++ b/arch/arm64/hyperv/hv_core.c
>> @@ -53,6 +53,23 @@ u64 hv_do_fast_hypercall8(u16 code, u64 input)
>> }
>> EXPORT_SYMBOL_GPL(hv_do_fast_hypercall8);
>>
>> +/*
>> + * hv_do_fast_hypercall16 -- Invoke the specified hypercall
>> + * with arguments in registers instead of physical memory.
>> + * Avoids the overhead of virt_to_phys for simple hypercalls.
>> + */
>> +u64 hv_do_fast_hypercall16(u16 code, u64 input1, u64 input2)
>> +{
>> + struct arm_smccc_res res;
>> + u64 control;
>> +
>> + control = (u64)code | HV_HYPERCALL_FAST_BIT;
>> +
>> + arm_smccc_1_1_hvc(HV_FUNC_ID, control, input1, input2, &res);
>> + return res.a0;
>> +}
>> +EXPORT_SYMBOL_GPL(hv_do_fast_hypercall16);
>> +
>
> I'd like this to have been in arch/arm64/include/asm/mshyperv.h like its x86
> counterpart, but that's just my personal liking of symmetry. I see why it's here
> with its slow and 8-byte brethren.
>
Good point, I don't see a good reason this can't be in the header.
>> /*
>> * Set a single VP register to a 64-bit value.
>> */
>> diff --git a/arch/arm64/include/asm/mshyperv.h b/arch/arm64/include/asm/mshyperv.h
>> index 2e2f83bafcfb..2a900ba00622 100644
>> --- a/arch/arm64/include/asm/mshyperv.h
>> +++ b/arch/arm64/include/asm/mshyperv.h
>> @@ -40,6 +40,18 @@ static inline u64 hv_get_msr(unsigned int reg)
>> return hv_get_vpreg(reg);
>> }
>>
>> +/*
>> + * Nested is not supported on arm64
>> + */
>> +static inline void hv_set_non_nested_msr(unsigned int reg, u64 value)
>> +{
>> + hv_set_msr(reg, value);
>> +}
>
> empty line preferred here, also reported by checkpatch
>
Good point, missed that one...
>> +static inline u64 hv_get_non_nested_msr(unsigned int reg)
>> +{
>> + return hv_get_msr(reg);
>> +}
>> +
>> /* SMCCC hypercall parameters */
>> #define HV_SMCCC_FUNC_NUMBER 1
>> #define HV_FUNC_ID ARM_SMCCC_CALL_VAL( \
>> diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
>> index c020d5d0ec2a..258034dfd829 100644
>> --- a/include/asm-generic/mshyperv.h
>> +++ b/include/asm-generic/mshyperv.h
>> @@ -72,6 +72,8 @@ extern void * __percpu *hyperv_pcpu_output_arg;
>>
>> extern u64 hv_do_hypercall(u64 control, void *inputaddr, void *outputaddr);
>> extern u64 hv_do_fast_hypercall8(u16 control, u64 input8);
>> +extern u64 hv_do_fast_hypercall16(u16 control, u64 input1, u64 input2);
>> +
>
> checkpatch warns against putting externs in header files, and FWIW, if hv_do_fast_hypercall16()
> for arm64 were in arch/arm64/include/asm/mshyperv.h like its x86 counterpart, you probably
> wouldn't need this?
>
Yes I wondered about that warning. That's true, if I just put it in the arm64 header
then this won't be needed at all, so I might just do that!
>> bool hv_isolation_type_snp(void);
>> bool hv_isolation_type_tdx(void);
>>
next prev parent reply other threads:[~2025-02-28 0:21 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 23:07 [PATCH v5 00/10] Introduce /dev/mshv root partition driver Nuno Das Neves
2025-02-26 23:07 ` [PATCH v5 01/10] hyperv: Convert Hyper-V status codes to strings Nuno Das Neves
2025-02-26 23:26 ` Stanislav Kinsburskii
2025-02-27 4:22 ` Easwar Hariharan
2025-02-27 23:48 ` Nuno Das Neves
2025-02-27 17:02 ` Roman Kisel
2025-02-27 22:54 ` Easwar Hariharan
2025-02-27 23:08 ` Roman Kisel
2025-02-27 23:25 ` Easwar Hariharan
2025-02-28 17:20 ` Roman Kisel
2025-02-28 20:22 ` Easwar Hariharan
2025-02-28 22:26 ` Roman Kisel
2025-02-27 23:21 ` Roman Kisel
2025-02-28 0:15 ` Nuno Das Neves
2025-02-28 16:40 ` Roman Kisel
2025-03-06 17:57 ` Michael Kelley
2025-03-06 18:09 ` Michael Kelley
2025-03-06 18:40 ` Nuno Das Neves
2025-03-06 18:57 ` Michael Kelley
2025-03-07 19:38 ` Nuno Das Neves
2025-02-26 23:07 ` [PATCH v5 02/10] x86/mshyperv: Add support for extended Hyper-V features Nuno Das Neves
2025-02-26 23:27 ` Stanislav Kinsburskii
2025-02-27 17:59 ` Roman Kisel
2025-02-28 0:17 ` Nuno Das Neves
2025-02-28 16:42 ` Roman Kisel
2025-02-27 18:17 ` Easwar Hariharan
2025-03-06 18:30 ` Michael Kelley
2025-03-12 18:04 ` Nuno Das Neves
2025-03-10 13:17 ` Tianyu Lan
2025-02-26 23:07 ` [PATCH v5 03/10] arm64/hyperv: Add some missing functions to arm64 Nuno Das Neves
2025-02-26 23:27 ` Stanislav Kinsburskii
2025-02-27 5:56 ` Easwar Hariharan
2025-02-28 0:21 ` Nuno Das Neves [this message]
2025-03-06 19:05 ` Michael Kelley
2025-03-07 21:36 ` Nuno Das Neves
2025-03-07 21:55 ` Easwar Hariharan
2025-02-27 18:09 ` Roman Kisel
2025-02-26 23:07 ` [PATCH v5 04/10] hyperv: Introduce hv_recommend_using_aeoi() Nuno Das Neves
2025-02-26 23:28 ` Stanislav Kinsburskii
2025-02-27 18:04 ` Roman Kisel
2025-02-28 0:21 ` Nuno Das Neves
2025-02-27 23:03 ` Easwar Hariharan
2025-02-28 0:33 ` Nuno Das Neves
2025-02-28 0:49 ` Easwar Hariharan
2025-03-06 19:12 ` Michael Kelley
2025-03-10 12:51 ` Tianyu Lan
2025-02-26 23:07 ` [PATCH v5 05/10] acpi: numa: Export node_to_pxm() Nuno Das Neves
2025-02-26 23:31 ` Stanislav Kinsburskii
2025-02-27 23:05 ` Easwar Hariharan
2025-03-06 19:16 ` Michael Kelley
2025-03-10 12:50 ` Tianyu Lan
2025-02-26 23:08 ` [PATCH v5 06/10] Drivers/hv: Export some functions for use by root partition module Nuno Das Neves
2025-02-26 23:32 ` Stanislav Kinsburskii
2025-02-27 18:11 ` Roman Kisel
2025-02-28 0:51 ` Easwar Hariharan
2025-03-06 19:23 ` Michael Kelley
2025-03-07 21:38 ` Nuno Das Neves
2025-02-26 23:08 ` [PATCH v5 07/10] Drivers: hv: Introduce per-cpu event ring tail Nuno Das Neves
2025-02-26 23:39 ` Stanislav Kinsburskii
2025-03-07 17:02 ` Michael Kelley
2025-03-07 22:06 ` Nuno Das Neves
2025-03-07 23:21 ` Michael Kelley
2025-03-07 23:31 ` Nuno Das Neves
2025-03-07 23:37 ` Michael Kelley
2025-03-10 13:01 ` Tianyu Lan
2025-03-12 19:44 ` Nuno Das Neves
2025-03-13 7:34 ` Tianyu Lan
2025-03-13 15:56 ` Nuno Das Neves
2025-03-13 16:00 ` Tianyu Lan
2025-02-26 23:08 ` [PATCH v5 08/10] x86: hyperv: Add mshv_handler irq handler and setup function Nuno Das Neves
2025-02-26 23:43 ` Stanislav Kinsburskii
2025-03-01 0:38 ` Nuno Das Neves
2025-03-07 17:38 ` Michael Kelley
2025-03-10 21:46 ` Nuno Das Neves
2025-03-10 22:23 ` Michael Kelley
2025-03-07 17:44 ` Michael Kelley
2025-03-07 23:29 ` Nuno Das Neves
2025-03-07 23:45 ` Michael Kelley
2025-02-26 23:08 ` [PATCH v5 09/10] hyperv: Add definitions for root partition driver to hv headers Nuno Das Neves
2025-02-26 23:51 ` Stanislav Kinsburskii
2025-03-01 0:46 ` Nuno Das Neves
2025-02-27 18:13 ` Roman Kisel
2025-02-28 1:27 ` Easwar Hariharan
2025-03-01 0:52 ` Nuno Das Neves
2025-03-07 17:26 ` Michael Kelley
2025-03-07 23:35 ` Nuno Das Neves
2025-03-10 12:40 ` Tianyu Lan
2025-03-12 20:17 ` Nuno Das Neves
2025-02-26 23:08 ` [PATCH v5 10/10] Drivers: hv: Introduce mshv_root module to expose /dev/mshv to VMMs Nuno Das Neves
2025-02-27 4:59 ` Easwar Hariharan
2025-03-01 1:29 ` Nuno Das Neves
2025-02-27 18:50 ` Roman Kisel
2025-03-01 1:38 ` Nuno Das Neves
2025-03-06 17:32 ` Wei Liu
2025-03-07 18:06 ` Roman Kisel
2025-03-11 18:01 ` Jeff Johnson
2025-03-14 19:25 ` Nuno Das Neves
2025-03-13 16:43 ` Michael Kelley
2025-03-14 2:15 ` Nuno Das Neves
2025-03-14 3:27 ` Michael Kelley
2025-03-17 23:51 ` Michael Kelley
2025-03-18 17:24 ` Wei Liu
2025-03-18 17:45 ` Michael Kelley
2025-03-18 20:07 ` Wei Liu
2025-03-19 0:34 ` Nuno Das Neves
2025-03-19 2:10 ` Michael Kelley
2025-03-19 15:26 ` Michael Kelley
2025-03-19 18:04 ` Nuno Das Neves
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=2fee888a-4f81-40aa-9545-617a49a7fb30@linux.microsoft.com \
--to=nunodasneves@linux.microsoft.com \
--cc=Tianyu.Lan@microsoft.com \
--cc=anrayabh@linux.microsoft.com \
--cc=apais@linux.microsoft.com \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=daniel.lezcano@linaro.org \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=eahariha@linux.microsoft.com \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jinankjain@linux.microsoft.com \
--cc=joro@8bytes.org \
--cc=kys@microsoft.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=mrathor@linux.microsoft.com \
--cc=muislam@microsoft.com \
--cc=muminulrussell@gmail.com \
--cc=prapal@linux.microsoft.com \
--cc=rafael@kernel.org \
--cc=robin.murphy@arm.com \
--cc=skinsburskii@linux.microsoft.com \
--cc=ssengar@linux.microsoft.com \
--cc=stanislav.kinsburskiy@gmail.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wei.liu@kernel.org \
--cc=will@kernel.org \
--cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.