From: Roman Kisel <romank@linux.microsoft.com>
To: mhklinux@outlook.com
Cc: apais@microsoft.com, arnd@arndb.de, benhill@microsoft.com,
bhelgaas@google.com, bp@alien8.de, catalin.marinas@arm.com,
dave.hansen@linux.intel.com, decui@microsoft.com,
haiyangz@microsoft.com, hpa@zytor.com, kw@linux.com,
kys@microsoft.com, lenb@kernel.org, linux-acpi@vger.kernel.org,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, lpieralisi@kernel.org,
mingo@redhat.com, rafael@kernel.org, robh@kernel.org,
romank@linux.microsoft.com, ssengar@linux.microsoft.com,
ssengar@microsoft.com, sunilmut@microsoft.com,
tglx@linutronix.de, vdso@hexbites.dev, wei.liu@kernel.org,
will@kernel.org, x86@kernel.org
Subject: RE: [PATCH v3 2/7] Drivers: hv: Enable VTL mode for arm64
Date: Mon, 5 Aug 2024 15:15:37 -0700 [thread overview]
Message-ID: <20240805221537.383265-1-romank@linux.microsoft.com> (raw)
In-Reply-To: <SN6PR02MB4157B22BD56677EFBD215D87D4BE2@SN6PR02MB4157.namprd02.prod.outlook.com>
> >
> > On 8/4/2024 9:05 PM, Saurabh Singh Sengar wrote:
> > > On Mon, Aug 05, 2024 at 03:01:58AM +0000, Michael Kelley wrote:
> > >> From: Roman Kisel <romank@linux.microsoft.com> Sent: Friday, July 26, 2024 3:59
> > PM
> > >>>
> > >>> Kconfig dependencies for arm64 guests on Hyper-V require that be ACPI enabled,
> > >>> and limit VTL mode to x86/x64. To enable VTL mode on arm64 as well, update the
> > >>> dependencies. Since VTL mode requires DeviceTree instead of ACPI, don't require
> > >>> arm64 guests on Hyper-V to have ACPI.
> > >>>
> > >>> Signed-off-by: Roman Kisel <romank@linux.microsoft.com>
> > >>> ---
> > >>> drivers/hv/Kconfig | 6 +++---
> > >>> 1 file changed, 3 insertions(+), 3 deletions(-)
> > >>>
> > >>> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> > >>> index 862c47b191af..a5cd1365e248 100644
> > >>> --- a/drivers/hv/Kconfig
> > >>> +++ b/drivers/hv/Kconfig
> > >>> @@ -5,7 +5,7 @@ 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)
> > >>> + || (ARM64 && !CPU_BIG_ENDIAN)
> > >>> select PARAVIRT
> > >>> select X86_HV_CALLBACK_VECTOR if X86
> > >>> select OF_EARLY_FLATTREE if OF
> > >>> @@ -15,7 +15,7 @@ config HYPERV
> > >>>
> > >>> config HYPERV_VTL_MODE
> > >>> bool "Enable Linux to boot in VTL context"
> > >>> - depends on X86_64 && HYPERV
> > >>> + depends on HYPERV
> > >>> depends on SMP
> > >>> default n
> > >>> help
> > >>> @@ -31,7 +31,7 @@ config HYPERV_VTL_MODE
> > >>>
> > >>> 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
> > >>> + initializes the kernel to run in 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.
> > >>> --
> > >>> 2.34.1
> > >>>
> > >>
> > >> In v2 of this patch, I suggested [1] making a couple additional minor changes
> > >> so that kernels built *without* HYPER_VTL_MODE would still require
> > >> ACPI. Did that suggestion not work out? If that's the case, I'm curious
> > >> about what goes wrong.
> > >
> > > Hi Michael/Roman,
> > > I was considering making HYPERV_VTL_MODE depend on CONFIG_OF. That should
> > address
> > > above concern as well. Do you see any potential issue with it.
> > >
> > Michael,
> >
> > I ran into a pretty gnarly recursive dependencies which in all fairness
> > might stem from not being fluent enough in the Kconfig language. Any
> > help of how to approach implementing your idea would be greatly appreciated!
> >
>
> This is what I had in mind:
>
> --- a/drivers/hv/Kconfig
> +++ b/drivers/hv/Kconfig
> @@ -5,7 +5,8 @@ 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)
> + || (ARM64 && !CPU_BIG_ENDIAN)
> + depends on (ACPI || HYPERV_VTL_MODE)
> select PARAVIRT
> select X86_HV_CALLBACK_VECTOR if X86
> select OF_EARLY_FLATTREE if OF
> @@ -15,7 +16,7 @@ config HYPERV
>
> config HYPERV_VTL_MODE
> bool "Enable Linux to boot in VTL context"
> - depends on X86_64 && HYPERV
> + depends on X86_64
> depends on SMP
> default n
> help
>
> HYPERV_VTL_MODE can now be selected independently of HYPERV.
> The existing code should be such that even if someone is building a
> random config and gets HYPERV_VTL_MODE without HYPERV, the
> kernel will build and run in a non-Hyper-V environment and isn't
> broken somehow.
>
> For HYPERV to be selected, either ACPI must already be selected, or
> HYPERV_VTL_MODE must already be selected. So "normal" kernels are
> still enforced to require ACPI. But if building with HYPERV_VTL_MODE,
> then ACPI is optional.
>
Thanks a ton! Let me try this out for the (arch; VTL) build matrix :)
> Saurabh's idea of adding "depends on OF" to HYPERV_VTL_MODE
> should also work with these changes.
>
> I haven't fully tested the above with all the relevant combinations
> on both x86 and arm64, but I think the logic makes sense.
next prev parent reply other threads:[~2024-08-05 22:15 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-26 22:59 [PATCH v3 0/7] arm64: hyperv: Support Virtual Trust Level Boot Roman Kisel
2024-07-26 22:59 ` [PATCH v3 1/7] arm64: hyperv: Use SMC to detect hypervisor presence Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 14:53 ` Roman Kisel
2024-08-05 3:01 ` Michael Kelley
2024-08-05 16:50 ` Roman Kisel
2024-08-05 20:30 ` Michael Kelley
2024-08-05 21:44 ` Roman Kisel
2024-08-05 3:53 ` Saurabh Singh Sengar
2024-08-05 15:17 ` Roman Kisel
2024-08-05 15:46 ` Saurabh Singh Sengar
2024-08-05 15:56 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 2/7] Drivers: hv: Enable VTL mode for arm64 Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 3:01 ` Michael Kelley
2024-08-05 4:05 ` Saurabh Singh Sengar
2024-08-05 15:24 ` Roman Kisel
2024-08-05 19:51 ` Michael Kelley
2024-08-05 22:15 ` Roman Kisel [this message]
2024-07-26 22:59 ` [PATCH v3 3/7] Drivers: hv: Provide arch-neutral implementation of get_vtl() Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 5:45 ` Saurabh Singh Sengar
2024-08-05 3:02 ` Michael Kelley
2024-08-05 16:19 ` Roman Kisel
2024-08-05 20:13 ` Michael Kelley
2024-08-05 21:55 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 4/7] arm64: hyperv: Boot in a Virtual Trust Level Roman Kisel
2024-08-03 1:22 ` Wei Liu
2024-08-05 14:55 ` Roman Kisel
2024-08-05 3:02 ` Michael Kelley
2024-08-05 16:20 ` Roman Kisel
2024-08-05 6:28 ` Saurabh Singh Sengar
2024-08-05 15:48 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 5/7] dt-bindings: bus: Add Hyper-V VMBus cache coherency and IRQs Roman Kisel
2024-07-27 8:53 ` Krzysztof Kozlowski
2024-07-29 16:33 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 6/7] Drivers: hv: vmbus: Get the IRQ number from DT Roman Kisel
2024-07-27 8:56 ` Krzysztof Kozlowski
2024-07-27 9:17 ` Arnd Bergmann
2024-07-27 9:20 ` Krzysztof Kozlowski
2024-07-29 16:51 ` Roman Kisel
2024-08-05 3:03 ` Michael Kelley
2024-08-05 16:26 ` Roman Kisel
2024-07-29 16:36 ` Roman Kisel
2024-08-05 8:30 ` Saurabh Singh Sengar
2024-08-05 14:12 ` Michael Kelley
2024-08-05 15:49 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 7/7] PCI: hv: Get vPCI MSI IRQ domain " Roman Kisel
2024-08-03 1:20 ` Wei Liu
2024-08-05 14:51 ` Roman Kisel
2024-08-05 15:59 ` Roman Kisel
2024-08-05 3:03 ` Michael Kelley
2024-08-05 16:30 ` Roman Kisel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240805221537.383265-1-romank@linux.microsoft.com \
--to=romank@linux.microsoft.com \
--cc=apais@microsoft.com \
--cc=arnd@arndb.de \
--cc=benhill@microsoft.com \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=kw@linux.com \
--cc=kys@microsoft.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=ssengar@linux.microsoft.com \
--cc=ssengar@microsoft.com \
--cc=sunilmut@microsoft.com \
--cc=tglx@linutronix.de \
--cc=vdso@hexbites.dev \
--cc=wei.liu@kernel.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.