[PATCH v9 0/5] Add support running nested Microsoft Hypervisor

From: Jinank Jain
Date: Wed Dec 14 2022 - 01:33:19 EST


This patch series plans to add support for running nested Microsoft
Hypervisor. In case of nested Microsoft Hypervisor there are few
privileged hypercalls which need to go L0 Hypervisor instead of L1
Hypervisor. This patches series basically identifies such hypercalls and
replace them with nested hypercalls.

Jinank Jain (5):
x86/hyperv: Add support for detecting nested hypervisor
Drivers: hv: Setup synic registers in case of nested root partition
x86/hyperv: Add an interface to do nested hypercalls
Drivers: hv: Enable vmbus driver for nested root partition
x86/hyperv: Change interrupt vector for nested root partition

[v4]
- Fix ARM64 compilation

[v5]
- Fix comments from Michael Kelly

[v6]
- Send the correct patches from the right folder

[v7]
- Fix linker issues for CONFIG_HYPERV=n pointed out by Michael
- Fix comments from Nuno: created two separate functions for fetching
nested vs non-nested registers.

[v8]
- Refactor as per the recommendation from Michael Kelly

[v9]
- Address comments from Michael and Nuno.

arch/x86/include/asm/hyperv-tlfs.h | 17 +++++-
arch/x86/include/asm/idtentry.h | 2 +
arch/x86/include/asm/irq_vectors.h | 6 +++
arch/x86/include/asm/mshyperv.h | 72 +++++++++++++++----------
arch/x86/kernel/cpu/mshyperv.c | 87 ++++++++++++++++++++++++++++++
arch/x86/kernel/idt.c | 10 ++++
drivers/hv/hv.c | 19 +++++--
drivers/hv/hv_common.c | 9 ++--
drivers/hv/vmbus_drv.c | 5 +-
include/asm-generic/hyperv-tlfs.h | 1 +
include/asm-generic/mshyperv.h | 1 +
11 files changed, 190 insertions(+), 39 deletions(-)

--
2.25.1