2b4b90e053
Currently, the secondary CPUs in Hyper-V VTL context lack support for
parallel startup. Therefore, relying on the single initial_stack fetched
from the current task structure suffices for all vCPUs.
However, common initial_stack risks stack corruption when parallel startup
is enabled. In order to facilitate parallel startup, use the initial_stack
from the per CPU idle thread instead of the current task.
Fixes: 3be1bc2fe9
("x86/hyperv: VTL support for Hyper-V")
Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Link: https://lore.kernel.org/r/1709452896-13342-1-git-send-email-ssengar@linux.microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
Message-ID: <1709452896-13342-1-git-send-email-ssengar@linux.microsoft.com>
59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "Microsoft Hyper-V guest support"
|
|
|
|
config HYPERV
|
|
tristate "Microsoft Hyper-V client drivers"
|
|
depends on (X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
|
|
|| (ACPI && ARM64 && !CPU_BIG_ENDIAN)
|
|
select PARAVIRT
|
|
select X86_HV_CALLBACK_VECTOR if X86
|
|
select OF_EARLY_FLATTREE if OF
|
|
help
|
|
Select this option to run Linux as a Hyper-V client operating
|
|
system.
|
|
|
|
config HYPERV_VTL_MODE
|
|
bool "Enable Linux to boot in VTL context"
|
|
depends on X86_64 && HYPERV
|
|
depends on SMP
|
|
default n
|
|
help
|
|
Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
|
|
enlightenments offered to host and guest partitions which enables
|
|
the creation and management of new security boundaries within
|
|
operating system software.
|
|
|
|
VSM achieves and maintains isolation through Virtual Trust Levels
|
|
(VTLs). Virtual Trust Levels are hierarchical, with higher levels
|
|
being more privileged than lower levels. VTL0 is the least privileged
|
|
level, and currently only other level supported is VTL2.
|
|
|
|
Select this option to build a Linux kernel to run at a VTL other than
|
|
the normal VTL0, which currently is only VTL2. This option
|
|
initializes the x86 platform for VTL2, and adds the ability to boot
|
|
secondary CPUs directly into 64-bit context as required for VTLs other
|
|
than 0. A kernel built with this option must run at VTL2, and will
|
|
not run as a normal guest.
|
|
|
|
If unsure, say N
|
|
|
|
config HYPERV_TIMER
|
|
def_bool HYPERV && X86
|
|
|
|
config HYPERV_UTILS
|
|
tristate "Microsoft Hyper-V Utilities driver"
|
|
depends on HYPERV && CONNECTOR && NLS
|
|
depends on PTP_1588_CLOCK_OPTIONAL
|
|
help
|
|
Select this option to enable the Hyper-V Utilities.
|
|
|
|
config HYPERV_BALLOON
|
|
tristate "Microsoft Hyper-V Balloon driver"
|
|
depends on HYPERV
|
|
select PAGE_REPORTING
|
|
help
|
|
Select this option to enable Hyper-V Balloon driver.
|
|
|
|
endmenu
|