Introduce new headers for Hyper-V
| From: | Nuno Das Neves <nunodasneves-AT-linux.microsoft.com> | |
| To: | linux-hyperv-AT-vger.kernel.org, linux-arm-kernel-AT-lists.infradead.org, linux-kernel-AT-vger.kernel.org, kvm-AT-vger.kernel.org, iommu-AT-lists.linux.dev, netdev-AT-vger.kernel.org, linux-pci-AT-vger.kernel.org, linux-arch-AT-vger.kernel.org, virtualization-AT-lists.linux.dev | |
| Subject: | [PATCH v3 0/5] Introduce new headers for Hyper-V | |
| Date: | Mon, 25 Nov 2024 15:24:39 -0800 | |
| Message-ID: | <1732577084-2122-1-git-send-email-nunodasneves@linux.microsoft.com> | |
| Cc: | kys-AT-microsoft.com, haiyangz-AT-microsoft.com, wei.liu-AT-kernel.org, mhklinux-AT-outlook.com, decui-AT-microsoft.com, catalin.marinas-AT-arm.com, will-AT-kernel.org, luto-AT-kernel.org, tglx-AT-linutronix.de, mingo-AT-redhat.com, bp-AT-alien8.de, dave.hansen-AT-linux.intel.com, x86-AT-kernel.org, hpa-AT-zytor.com, seanjc-AT-google.com, pbonzini-AT-redhat.com, peterz-AT-infradead.org, daniel.lezcano-AT-linaro.org, joro-AT-8bytes.org, robin.murphy-AT-arm.com, davem-AT-davemloft.net, edumazet-AT-google.com, kuba-AT-kernel.org, pabeni-AT-redhat.com, lpieralisi-AT-kernel.org, kw-AT-linux.com, robh-AT-kernel.org, bhelgaas-AT-google.com, arnd-AT-arndb.de, sgarzare-AT-redhat.com, jinankjain-AT-linux.microsoft.com, muminulrussell-AT-gmail.com, skinsburskii-AT-linux.microsoft.com, mukeshrathor-AT-microsoft.com, vkuznets-AT-redhat.com, ssengar-AT-linux.microsoft.com, apais-AT-linux.microsoft.com, eahariha-AT-linux.microsoft.com, horms-AT-kernel.org | |
| Archive-link: | Article |
To support Linux as root partition[1] on Hyper-V many new definitions
are required.
The plan going forward is to directly import definitions from
Hyper-V code without waiting for them to land in the TLFS document.
This is a quicker and more maintainable way to import definitions,
and is a step toward the eventual goal of exporting the headers
directly from Hyper-V for use in Linux.
This patch series introduces new headers (hvhdk.h, hvgdk.h, etc,
see patch #3) derived directly from Hyper-V code. hyperv-tlfs.h is
replaced with hvhdk.h (which includes the other new headers)
everywhere.
No functional change is expected.
Summary:
Patch 1-2: Minor cleanup patches
Patch 3: Add the new headers (hvhdk.h, etc..) in include/hyperv/
Patch 4: Switch to the new headers
Patch 5: Delete hyperv-tlfs.h files
Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
---
Changelog:
v3:
- Add patch (#5) to delete the hyperv-tlfs.h files, suggested by
Michael Kelley and Easwar Hariharan
- Reword commit message on patch #3 to improve clarity, suggested
by Michael Kelley
- Clarify "Dom0" terminology, suggested by Michael Kelley
v2:
- Rework the series to simply use the new headers everywhere,
instead of fiddling around to keep hyperv-tlfs.h in some areas,
suggested by Michael Kelley and Easwar Hariharan
- Fix compilation issues with some configs by adding missing
definitions and changing some names, thanks to Simon Horman for
catching those
- Add additional definitions to the new headers due to them now being
used everywhere
- Don't remove indirect includes in patch #2, only remove those which
truly aren't used, suggested by Michael Kelley
---
Footnotes:
[1] Linux as root partition on Hyper-V is sometimes referred to as
"Dom0", borrowing the terminology from Xen. Although they are
conceptually similar, note that "Hyper-V Dom0" has nothing to do
with Xen.
Nuno Das Neves (5):
hyperv: Move hv_connection_id to hyperv-tlfs.h
hyperv: Clean up unnecessary #includes
hyperv: Add new Hyper-V headers in include/hyperv
hyperv: Switch from hyperv-tlfs.h to hyperv/hvhdk.h
hyperv: Remove the now unused hyperv-tlfs.h files
MAINTAINERS | 8 +-
arch/arm64/hyperv/hv_core.c | 3 +-
arch/arm64/hyperv/mshyperv.c | 4 +-
arch/arm64/include/asm/hyperv-tlfs.h | 71 --
arch/arm64/include/asm/mshyperv.h | 7 +-
arch/x86/hyperv/hv_apic.c | 1 -
arch/x86/hyperv/hv_init.c | 21 +-
arch/x86/hyperv/hv_proc.c | 3 +-
arch/x86/hyperv/ivm.c | 1 -
arch/x86/hyperv/mmu.c | 1 -
arch/x86/hyperv/nested.c | 2 +-
arch/x86/include/asm/hyperv-tlfs.h | 811 ----------------
arch/x86/include/asm/kvm_host.h | 3 +-
arch/x86/include/asm/mshyperv.h | 3 +-
arch/x86/include/asm/svm.h | 2 +-
arch/x86/kernel/cpu/mshyperv.c | 2 +-
arch/x86/kvm/vmx/hyperv_evmcs.h | 2 +-
arch/x86/kvm/vmx/vmx_onhyperv.h | 2 +-
arch/x86/mm/pat/set_memory.c | 2 -
drivers/clocksource/hyperv_timer.c | 2 +-
drivers/hv/hv_balloon.c | 4 +-
drivers/hv/hv_common.c | 2 +-
drivers/hv/hv_kvp.c | 2 +-
drivers/hv/hv_snapshot.c | 2 +-
drivers/hv/hyperv_vmbus.h | 2 +-
include/asm-generic/hyperv-tlfs.h | 874 -----------------
include/asm-generic/mshyperv.h | 7 +-
include/clocksource/hyperv_timer.h | 2 +-
include/hyperv/hvgdk.h | 308 ++++++
include/hyperv/hvgdk_ext.h | 46 +
include/hyperv/hvgdk_mini.h | 1306 ++++++++++++++++++++++++++
include/hyperv/hvhdk.h | 733 +++++++++++++++
include/hyperv/hvhdk_mini.h | 311 ++++++
include/linux/hyperv.h | 11 +-
net/vmw_vsock/hyperv_transport.c | 6 +-
35 files changed, 2748 insertions(+), 1819 deletions(-)
delete mode 100644 arch/arm64/include/asm/hyperv-tlfs.h
delete mode 100644 arch/x86/include/asm/hyperv-tlfs.h
delete mode 100644 include/asm-generic/hyperv-tlfs.h
create mode 100644 include/hyperv/hvgdk.h
create mode 100644 include/hyperv/hvgdk_ext.h
create mode 100644 include/hyperv/hvgdk_mini.h
create mode 100644 include/hyperv/hvhdk.h
create mode 100644 include/hyperv/hvhdk_mini.h
--
2.34.1
