From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Wei Liu <wei.liu@kernel.org>
Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-arch@vger.kernel.org, mikelley@microsoft.com,
kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
ssengar@linux.microsoft.com, mukeshrathor@microsoft.com,
stanislav.kinsburskiy@gmail.com, jinankjain@linux.microsoft.com,
apais@linux.microsoft.com, Tianyu.Lan@microsoft.com,
vkuznets@redhat.com, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com,
will@kernel.org, catalin.marinas@arm.com
Subject: Re: [PATCH 14/15] asm-generic: hyperv: Use mshv headers conditionally. Add asm-generic/hyperv-defs.h
Date: Thu, 17 Aug 2023 09:41:44 -0700 [thread overview]
Message-ID: <075cff41-fe21-48a8-bdc4-03b13a4ee973@linux.microsoft.com> (raw)
In-Reply-To: <ZMr5ebxAqfjHPkVb@liuwe-devbox-debian-v2>
On 8/2/2023 5:48 PM, Wei Liu wrote:
> On Thu, Jul 27, 2023 at 12:54:49PM -0700, Nuno Das Neves wrote:
>> In order to keep unstable hyper-v interfaces independent of
>> hyperv-tlfs.h, hvhdk.h must replace hyperv-tlfs.h eveywhere it will be
>> used in the mshv driver.
>
> Please properly capitalize "Hyper-V" when it is used as a term.
>
Will fix, thanks.
>> Add hyperv-defs.h to replace some inclusions of hyperv-tlfs.h.
>> It includes hyperv-tlfs.h or hvhdk.h depending on a compile-time constant
>> HV_HYPERV_DEFS which will be defined in the mshv driver.
>>
>> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>> ---
>> arch/arm64/include/asm/mshyperv.h | 2 +-
>> arch/x86/include/asm/mshyperv.h | 3 +--
>> drivers/hv/hyperv_vmbus.h | 1 -
>> include/asm-generic/hyperv-defs.h | 26 ++++++++++++++++++++++++++
>> include/asm-generic/mshyperv.h | 2 +-
>> include/linux/hyperv.h | 2 +-
>> 6 files changed, 30 insertions(+), 6 deletions(-)
>> create mode 100644 include/asm-generic/hyperv-defs.h
>>
> [...]
>> diff --git a/include/asm-generic/hyperv-defs.h b/include/asm-generic/hyperv-defs.h
>> new file mode 100644
>> index 000000000000..ac6fcba35c8c
>> --- /dev/null
>> +++ b/include/asm-generic/hyperv-defs.h
>> @@ -0,0 +1,26 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_GENERIC_HYPERV_DEFS_H
>> +#define _ASM_GENERIC_HYPERV_DEFS_H
>> +
>> +/*
>> + * There are cases where Microsoft Hypervisor ABIs are needed which may not be
>> + * stable or present in the Hyper-V TLFS document. E.g. the mshv_root driver.
>> + *
>> + * As these interfaces are unstable and may differ from hyperv-tlfs.h, they
>> + * must be kept separate and independent.
>> + *
>> + * However, code from files that depend on hyperv-tlfs.h (such as mshyperv.h)
>> + * is still needed, so work around the issue by conditionally including the
>> + * correct definitions.
>> + *
>> + * Note: Since they are independent of each other, there are many definitions
>> + * duplicated in both hyperv-tlfs.h and uapi/hyperv/hv*.h files.
>> + */
>
> Is this because we accidentally introduced some host only, unstable
> interfaces to hyperv-tlfs.h? Is the long term plan to drop those from
> hyperv-tlfs.h and further separate the helper functions?
>
> Thanks,
> Wei.
>
We do have some host-only interfaces in hyperv-tlfs.h that should not be there.
E.g. the create LP/VP hypercall inputs. We should drop them.
However, even if we fix that problem, the new headers still have conflicting
definitions, so need to be independent.
E.g. enum hv_message_type has many more members in the new headers.
We don't want to put anything not in the TLFS doc into hyperv-tlfs.h, even if it
can be ignored by the guest code.
>> +#ifdef HV_HYPERV_DEFS
>> +#include <uapi/hyperv/hvhdk.h>
>> +#else
>> +#include <asm/hyperv-tlfs.h>
>> +#endif
>> +
>> +#endif /* _ASM_GENERIC_HYPERV_DEFS_H */
>> +
>> diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
>> index 2b20994d809e..e86b6f51fb64 100644
>> --- a/include/asm-generic/mshyperv.h
>> +++ b/include/asm-generic/mshyperv.h
>> @@ -25,7 +25,7 @@
>> #include <linux/cpumask.h>
>> #include <linux/nmi.h>
>> #include <asm/ptrace.h>
>> -#include <asm/hyperv-tlfs.h>
>> +#include <asm-generic/hyperv-defs.h>
>>
>> #define VTPM_BASE_ADDRESS 0xfed40000
>>
>> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
>> index f90de5abcd50..66ed8b3e5d89 100644
>> --- a/include/linux/hyperv.h
>> +++ b/include/linux/hyperv.h
>> @@ -24,7 +24,7 @@
>> #include <linux/mod_devicetable.h>
>> #include <linux/interrupt.h>
>> #include <linux/reciprocal_div.h>
>> -#include <asm/hyperv-tlfs.h>
>> +#include <asm-generic/hyperv-defs.h>
>>
>> #define MAX_PAGE_BUFFER_COUNT 32
>> #define MAX_MULTIPAGE_BUFFER_COUNT 32 /* 128K */
>> --
>> 2.25.1
>>
WARNING: multiple messages have this Message-ID (diff)
From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Wei Liu <wei.liu@kernel.org>
Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-arch@vger.kernel.org, mikelley@microsoft.com,
kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
ssengar@linux.microsoft.com, mukeshrathor@microsoft.com,
stanislav.kinsburskiy@gmail.com, jinankjain@linux.microsoft.com,
apais@linux.microsoft.com, Tianyu.Lan@microsoft.com,
vkuznets@redhat.com, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com,
will@kernel.org, catalin.marinas@arm.com
Subject: Re: [PATCH 14/15] asm-generic: hyperv: Use mshv headers conditionally. Add asm-generic/hyperv-defs.h
Date: Thu, 17 Aug 2023 09:41:44 -0700 [thread overview]
Message-ID: <075cff41-fe21-48a8-bdc4-03b13a4ee973@linux.microsoft.com> (raw)
In-Reply-To: <ZMr5ebxAqfjHPkVb@liuwe-devbox-debian-v2>
On 8/2/2023 5:48 PM, Wei Liu wrote:
> On Thu, Jul 27, 2023 at 12:54:49PM -0700, Nuno Das Neves wrote:
>> In order to keep unstable hyper-v interfaces independent of
>> hyperv-tlfs.h, hvhdk.h must replace hyperv-tlfs.h eveywhere it will be
>> used in the mshv driver.
>
> Please properly capitalize "Hyper-V" when it is used as a term.
>
Will fix, thanks.
>> Add hyperv-defs.h to replace some inclusions of hyperv-tlfs.h.
>> It includes hyperv-tlfs.h or hvhdk.h depending on a compile-time constant
>> HV_HYPERV_DEFS which will be defined in the mshv driver.
>>
>> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>> ---
>> arch/arm64/include/asm/mshyperv.h | 2 +-
>> arch/x86/include/asm/mshyperv.h | 3 +--
>> drivers/hv/hyperv_vmbus.h | 1 -
>> include/asm-generic/hyperv-defs.h | 26 ++++++++++++++++++++++++++
>> include/asm-generic/mshyperv.h | 2 +-
>> include/linux/hyperv.h | 2 +-
>> 6 files changed, 30 insertions(+), 6 deletions(-)
>> create mode 100644 include/asm-generic/hyperv-defs.h
>>
> [...]
>> diff --git a/include/asm-generic/hyperv-defs.h b/include/asm-generic/hyperv-defs.h
>> new file mode 100644
>> index 000000000000..ac6fcba35c8c
>> --- /dev/null
>> +++ b/include/asm-generic/hyperv-defs.h
>> @@ -0,0 +1,26 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_GENERIC_HYPERV_DEFS_H
>> +#define _ASM_GENERIC_HYPERV_DEFS_H
>> +
>> +/*
>> + * There are cases where Microsoft Hypervisor ABIs are needed which may not be
>> + * stable or present in the Hyper-V TLFS document. E.g. the mshv_root driver.
>> + *
>> + * As these interfaces are unstable and may differ from hyperv-tlfs.h, they
>> + * must be kept separate and independent.
>> + *
>> + * However, code from files that depend on hyperv-tlfs.h (such as mshyperv.h)
>> + * is still needed, so work around the issue by conditionally including the
>> + * correct definitions.
>> + *
>> + * Note: Since they are independent of each other, there are many definitions
>> + * duplicated in both hyperv-tlfs.h and uapi/hyperv/hv*.h files.
>> + */
>
> Is this because we accidentally introduced some host only, unstable
> interfaces to hyperv-tlfs.h? Is the long term plan to drop those from
> hyperv-tlfs.h and further separate the helper functions?
>
> Thanks,
> Wei.
>
We do have some host-only interfaces in hyperv-tlfs.h that should not be there.
E.g. the create LP/VP hypercall inputs. We should drop them.
However, even if we fix that problem, the new headers still have conflicting
definitions, so need to be independent.
E.g. enum hv_message_type has many more members in the new headers.
We don't want to put anything not in the TLFS doc into hyperv-tlfs.h, even if it
can be ignored by the guest code.
>> +#ifdef HV_HYPERV_DEFS
>> +#include <uapi/hyperv/hvhdk.h>
>> +#else
>> +#include <asm/hyperv-tlfs.h>
>> +#endif
>> +
>> +#endif /* _ASM_GENERIC_HYPERV_DEFS_H */
>> +
>> diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
>> index 2b20994d809e..e86b6f51fb64 100644
>> --- a/include/asm-generic/mshyperv.h
>> +++ b/include/asm-generic/mshyperv.h
>> @@ -25,7 +25,7 @@
>> #include <linux/cpumask.h>
>> #include <linux/nmi.h>
>> #include <asm/ptrace.h>
>> -#include <asm/hyperv-tlfs.h>
>> +#include <asm-generic/hyperv-defs.h>
>>
>> #define VTPM_BASE_ADDRESS 0xfed40000
>>
>> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
>> index f90de5abcd50..66ed8b3e5d89 100644
>> --- a/include/linux/hyperv.h
>> +++ b/include/linux/hyperv.h
>> @@ -24,7 +24,7 @@
>> #include <linux/mod_devicetable.h>
>> #include <linux/interrupt.h>
>> #include <linux/reciprocal_div.h>
>> -#include <asm/hyperv-tlfs.h>
>> +#include <asm-generic/hyperv-defs.h>
>>
>> #define MAX_PAGE_BUFFER_COUNT 32
>> #define MAX_MULTIPAGE_BUFFER_COUNT 32 /* 128K */
>> --
>> 2.25.1
>>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-17 16:42 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-27 19:54 [PATCH 00/15] Introduce /dev/mshv drivers Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 01/15] hyperv-tlfs: Change shared HV_REGISTER_* defines to HV_MSR_* Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 1:25 ` Wei Liu
2023-08-03 1:25 ` Wei Liu
2023-07-27 19:54 ` [PATCH 02/15] mshyperv: Introduce hv_get_hypervisor_version Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-02 23:39 ` Wei Liu
2023-08-02 23:39 ` Wei Liu
2023-08-15 21:57 ` Nuno Das Neves
2023-08-15 21:57 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 03/15] mshyperv: Introduce numa_node_to_proximity_domain_info Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-02 23:47 ` Wei Liu
2023-08-02 23:47 ` Wei Liu
2023-07-27 19:54 ` [PATCH 04/15] asm-generic/mshyperv: Introduce hv_recommend_using_aeoi() Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-02 23:48 ` Wei Liu
2023-08-02 23:48 ` Wei Liu
2023-07-27 19:54 ` [PATCH 05/15] hyperv: Move hv_connection_id to hyperv-tlfs Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-02 23:55 ` Wei Liu
2023-08-02 23:55 ` Wei Liu
2023-08-15 22:04 ` Nuno Das Neves
2023-08-15 22:04 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 06/15] hyperv-tlfs: Introduce hv_status_to_string and hv_status_to_errno Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 07/15] Drivers: hv: Move hv_call_deposit_pages and hv_call_create_vp to common code Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:02 ` Wei Liu
2023-08-03 0:02 ` Wei Liu
2023-07-27 19:54 ` [PATCH 08/15] Drivers: hv: Introduce per-cpu event ring tail Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:10 ` Wei Liu
2023-08-03 0:10 ` Wei Liu
2023-08-16 21:40 ` Nuno Das Neves
2023-08-16 21:40 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 09/15] Drivers: hv: Introduce hv_output_arg_exists in hv_common Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:16 ` Wei Liu
2023-08-03 0:16 ` Wei Liu
2023-08-16 21:56 ` Nuno Das Neves
2023-08-16 21:56 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 10/15] x86: hyperv: Add mshv_handler irq handler and setup function Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:17 ` Wei Liu
2023-08-03 0:17 ` Wei Liu
2023-07-27 19:54 ` [PATCH 11/15] Drivers: hv: export vmbus_isr, hv_context and hv_post_message Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:17 ` Wei Liu
2023-08-03 0:17 ` Wei Liu
2023-07-27 19:54 ` [PATCH 12/15] Documentation: Reserve ioctl number for mshv driver Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:23 ` Wei Liu
2023-08-03 0:23 ` Wei Liu
2023-08-03 13:23 ` Jonathan Corbet
2023-08-03 13:23 ` Jonathan Corbet
2023-08-03 21:05 ` Wei Liu
2023-08-03 21:05 ` Wei Liu
2023-07-27 19:54 ` [PATCH 13/15] uapi: hyperv: Add mshv driver headers hvhdk.h, hvhdk_mini.h, hvgdk.h, hvgdk_mini.h Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:27 ` Wei Liu
2023-08-03 0:27 ` Wei Liu
2023-07-27 19:54 ` [PATCH 14/15] asm-generic: hyperv: Use mshv headers conditionally. Add asm-generic/hyperv-defs.h Nuno Das Neves
2023-07-27 19:54 ` Nuno Das Neves
2023-08-03 0:48 ` Wei Liu
2023-08-03 0:48 ` Wei Liu
2023-08-17 16:41 ` Nuno Das Neves [this message]
2023-08-17 16:41 ` Nuno Das Neves
2023-07-27 19:54 ` [PATCH 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V Nuno Das Neves
2023-08-03 1:23 ` Wei Liu
2023-08-03 1:23 ` Wei Liu
2023-08-17 17:57 ` Nuno Das Neves
2023-08-17 17:57 ` Nuno Das Neves
2023-07-27 21:05 ` [PATCH 00/15] Introduce /dev/mshv drivers Nuno Das Neves
2023-07-27 21:05 ` 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=075cff41-fe21-48a8-bdc4-03b13a4ee973@linux.microsoft.com \
--to=nunodasneves@linux.microsoft.com \
--cc=Tianyu.Lan@microsoft.com \
--cc=apais@linux.microsoft.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jinankjain@linux.microsoft.com \
--cc=kys@microsoft.com \
--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=mikelley@microsoft.com \
--cc=mingo@redhat.com \
--cc=mukeshrathor@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.