Make it possible to opt-out from Hyper-V support, for minimized kernels that never will by run under Hyper-V. (eg. high-density virtualization or embedded systems) Average distro kernel will leave it on, therefore default to y. Signed-off-by: Enrico Weigelt <info@xxxxxxxxx> --- arch/x86/Kconfig | 11 +++++++++++ arch/x86/kernel/cpu/Makefile | 4 ++-- arch/x86/kernel/cpu/hypervisor.c | 2 ++ drivers/hv/Kconfig | 2 +- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index eff12460cb3c..57d20591d6ee 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -812,6 +812,17 @@ config VMWARE_GUEST density virtualization or embedded systems running (para)virtualized workloads. +config HYPERV_GUEST + bool "Hyper-V Guest support" + default y + help + This option enables several optimizations for running under the + Hyper-V hypervisor. + + Disabling it saves a few kb, for stripped down kernels eg. in high + density virtualization or embedded systems running (para)virtualized + workloads. + config KVM_GUEST bool "KVM Guest support (including kvmclock)" depends on PARAVIRT diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile index a615b0152bf0..5536b801cb44 100644 --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile @@ -51,9 +51,9 @@ obj-$(CONFIG_X86_CPU_RESCTRL) += resctrl/ obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o -obj-$(CONFIG_HYPERVISOR_GUEST) += hypervisor.o mshyperv.o +obj-$(CONFIG_HYPERVISOR_GUEST) += hypervisor.o obj-$(CONFIG_VMWARE_GUEST) += vmware.o - +obj-$(CONFIG_HYPERV_GUEST) += mshyperv.o obj-$(CONFIG_ACRN_GUEST) += acrn.o ifdef CONFIG_X86_FEATURE_NAMES diff --git a/arch/x86/kernel/cpu/hypervisor.c b/arch/x86/kernel/cpu/hypervisor.c index c0e770a224aa..32d6b2084d05 100644 --- a/arch/x86/kernel/cpu/hypervisor.c +++ b/arch/x86/kernel/cpu/hypervisor.c @@ -37,7 +37,9 @@ static const __initconst struct hypervisor_x86 * const hypervisors[] = #ifdef CONFIG_VMWARE_GUEST &x86_hyper_vmware, #endif +#ifdef CONFIG_HYPERV_GUEST &x86_hyper_ms_hyperv, +#endif #ifdef CONFIG_KVM_GUEST &x86_hyper_kvm, #endif diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig index 79e5356a737a..7b3094c59a81 100644 --- a/drivers/hv/Kconfig +++ b/drivers/hv/Kconfig @@ -4,7 +4,7 @@ menu "Microsoft Hyper-V guest support" config HYPERV tristate "Microsoft Hyper-V client drivers" - depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST + depends on X86 && ACPI && X86_LOCAL_APIC && HYPERV_GUEST select PARAVIRT select X86_HV_CALLBACK_VECTOR help -- 2.11.0