On Mon, Mar 10, 2025, at 22:01, Michael Kelley wrote:
From: Arnd Bergmann <arnd@arndb.de> Sent: Saturday, March 8, 2025 1:05 PM
quoted
quoted
config HYPERV_VTL_MODE
bool "Enable Linux to boot in VTL context"
- depends on X86_64 && HYPERV
+ depends on (X86_64 || ARM64)
depends on SMP
+ select OF_EARLY_FLATTREE
+ select OF
default n
help
Having the dependency below the top-level Kconfig entry feels a little
counterintuitive. You could flip that back as it was before by doing
select HYPERV_VTL_MODE if !ACPI
depends on ACPI || SMP
in the HYPERV option, leaving the dependency on HYPERV in
HYPERV_VTL_MODE.
I would argue that we don't ever want to implicitly select
HYPERV_VTL_MODE because of some other config setting or
lack thereof. VTL mode is enough of a special case that it should
only be explicitly selected. If someone omits ACPI, then HYPERV
should not be selectable unless HYPERV_VTL_MODE is explicitly
selected.
The last line of the comment for HYPERV_VTL_MODE says
"A kernel built with this option must run at VTL2, and will not run
as a normal guest." In other words, don't choose this unless you
100% know that VTL2 is what you want.
It sounds like the latter is the real problem: enabling a feature
should never prevent something else from working. Can you describe
what VTL context is and why it requires an exception to a rather
fundamental rule here? If you build a kernel that runs on every
single piece of arm64 hardware and every hypervisor, why can't
you add HYPERV_VTL_MODE to that as an option?
Arnd