From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Naman Jain <namjain@linux.microsoft.com>,
linux-hyperv@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
iommu@lists.linux.dev, netdev@vger.kernel.org,
linux-pci@vger.kernel.org, linux-arch@vger.kernel.org,
virtualization@lists.linux.dev
Cc: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org,
mhklinux@outlook.com, decui@microsoft.com,
catalin.marinas@arm.com, will@kernel.org, luto@kernel.org,
tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
seanjc@google.com, pbonzini@redhat.com, peterz@infradead.org,
daniel.lezcano@linaro.org, joro@8bytes.org, robin.murphy@arm.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, lpieralisi@kernel.org, kw@linux.com,
robh@kernel.org, bhelgaas@google.com, arnd@arndb.de,
sgarzare@redhat.com, jinankjain@linux.microsoft.com,
muminulrussell@gmail.com, skinsburskii@linux.microsoft.com,
mukeshrathor@microsoft.com, vkuznets@redhat.com,
ssengar@linux.microsoft.com, apais@linux.microsoft.com
Subject: Re: [PATCH v2 3/4] hyperv: Add new Hyper-V headers in include/hyperv
Date: Mon, 11 Nov 2024 09:55:53 -0800 [thread overview]
Message-ID: <403306e2-bc7a-491c-ab4e-033456a9fbea@linux.microsoft.com> (raw)
In-Reply-To: <ef2686dc-ec9e-4efd-9c52-5ba9434b7ce8@linux.microsoft.com>
On 11/7/2024 9:59 PM, Naman Jain wrote:
>
>
> On 11/8/2024 4:02 AM, Nuno Das Neves wrote:
>> These headers contain definitions for regular Hyper-V guests (as in
>> hyperv-tlfs.h), as well as interfaces for more privileged guests like
>> Dom0.
>>
>> These files are derived from headers exported from Hyper-V, rather than
>> being derived from the TLFS document. (Although, to preserve
>> compatibility with existing Linux code, some definitions are copied
>> directly from hyperv-tlfs.h too).
>>
>> The new files follow a naming convention according to their original
>> use:
>> - hdk "host development kit"
>> - gdk "guest development kit"
>> With postfix "_mini" implying userspace-only headers, and "_ext" for
>> extended hypercalls.
>
> Naming convention for mini (which may have come from HyperV code) is a bit odd TBH. May be it has more to it than what is mentioned here or what I know. If more information helps, or this can be changed, please see.
>
The naming is originally from the Hyper-V code. See below: "The original
names are kept intact primarily to keep the provenance of exactly where
they came from in Hyper-V code, which is helpful for manual maintenance
and extension of these definitions."
>>
>> These names should be considered a rough guide only - since there are
>> many places already where both host and guest code are in the same
>> place, hvhdk.h (which includes everything) can be used most of the time.
>>
>> The original names are kept intact primarily to keep the provenance of
>> exactly where they came from in Hyper-V code, which is helpful for
>> manual maintenance and extension of these definitions. Microsoft
>> maintainers importing new definitions should take care to put them in
>> the right file.
>>
>> Note also that the files contain both arm64 and x86_64 code guarded by
>> \#ifdefs, which is how the definitions originally appear in Hyper-V.
>> Keeping this convention from Hyper-V code is another tactic for
>> simplying the process of importing new definitions.
>>
>> These headers are a step toward importing headers directly from Hyper-V
>> in the future, similar to Xen public files in include/xen/interface/.
>>
>> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>
> While I understand the motivation behind this series that this is going to ease out the process of updating the header files with respect to HyperV, I think, we will need to pay attention to what we are bringing in with these headers, whether there are any users of it or not, and make sure that TLFS document is updated regularly, to avoid having bunch of code with no information of it.
> The code comments in these files are one step forward towards that.
> And from your cover letter it seems that some changes which actually make use of these additional interfaces are underway, so things will make more sense later. For now, this looks good to me.
>
Yes, we do need to be careful about what interfaces we add here. Not just
anything can be copied from Hyper-V code into these files. The exact
process is a matter we can discuss internally. But, as you say, there are
upcoming patches (previous versions can be found in the mailing list) which
use the new root partition interfaces.
Updating the TLFS and documenting the interfaces is a different matter.
I can't speak to the best way forward for documenting these, but in many
cases the use of the new interfaces will be self-evident from the code
that uses them, and/or comments as you mentioned.
Over the years many Hyper-V definitions have already been added and used
in Linux which have not been documented in the TLFS or elsewhere. This
patch series makes that fact more obvious and sets us on a path towards a
more maintainable method (i.e., publishing headers directly from the Hyper-V
code, hopefully).
Thanks
Nuno
> > Regards,
> Naman
>
> <snip>
next prev parent reply other threads:[~2024-11-11 17:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-07 22:32 [PATCH v2 0/4] Add new headers for Hyper-V Dom0 Nuno Das Neves
2024-11-07 22:32 ` [PATCH v2 1/4] hyperv: Move hv_connection_id to hyperv-tlfs.h Nuno Das Neves
2024-11-08 4:23 ` Easwar Hariharan
2024-11-11 4:13 ` Michael Kelley
2024-11-07 22:32 ` [PATCH v2 2/4] hyperv: Clean up unnecessary #includes Nuno Das Neves
2024-11-08 4:24 ` Easwar Hariharan
2024-11-11 4:13 ` Michael Kelley
2024-11-07 22:32 ` [PATCH v2 3/4] hyperv: Add new Hyper-V headers in include/hyperv Nuno Das Neves
2024-11-08 5:59 ` Naman Jain
2024-11-11 17:55 ` Nuno Das Neves [this message]
2024-11-11 4:13 ` Michael Kelley
2024-11-11 18:45 ` Nuno Das Neves
2024-11-11 19:31 ` Michael Kelley
2024-11-13 23:32 ` Nuno Das Neves
2024-11-07 22:32 ` [PATCH v2 4/4] hyperv: Switch from hyperv-tlfs.h to hyperv/hvhdk.h Nuno Das Neves
2024-11-11 4:13 ` Michael Kelley
2024-11-15 21:14 ` Nuno Das Neves
2024-11-15 21:54 ` Michael Kelley
2024-11-14 21:35 ` Easwar Hariharan
2024-11-11 4:12 ` [PATCH v2 0/4] Add new headers for Hyper-V Dom0 Michael Kelley
2024-11-11 17:59 ` Nuno Das Neves
2024-11-11 19:36 ` Michael Kelley
2024-11-11 18:52 ` [EXTERNAL] " MUKESH RATHOR
2024-11-11 21:28 ` Michael Kelley
2024-11-11 23:10 ` MUKESH RATHOR
2024-11-11 23:41 ` Michael Kelley
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=403306e2-bc7a-491c-ab4e-033456a9fbea@linux.microsoft.com \
--to=nunodasneves@linux.microsoft.com \
--cc=apais@linux.microsoft.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=decui@microsoft.com \
--cc=edumazet@google.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=jinankjain@linux.microsoft.com \
--cc=joro@8bytes.org \
--cc=kuba@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=kw@linux.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=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=luto@kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=mukeshrathor@microsoft.com \
--cc=muminulrussell@gmail.com \
--cc=namjain@linux.microsoft.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=seanjc@google.com \
--cc=sgarzare@redhat.com \
--cc=skinsburskii@linux.microsoft.com \
--cc=ssengar@linux.microsoft.com \
--cc=tglx@linutronix.de \
--cc=virtualization@lists.linux.dev \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).