All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roman Kisel <romank@linux.microsoft.com>
To: Michael Kelley <mhklinux@outlook.com>,
	"arnd@arndb.de" <arnd@arndb.de>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"bp@alien8.de" <bp@alien8.de>,
	"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"decui@microsoft.com" <decui@microsoft.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>,
	"hpa@zytor.com" <hpa@zytor.com>, "kw@linux.com" <kw@linux.com>,
	"kys@microsoft.com" <kys@microsoft.com>,
	"lenb@kernel.org" <lenb@kernel.org>,
	"lpieralisi@kernel.org" <lpieralisi@kernel.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"rafael@kernel.org" <rafael@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"wei.liu@kernel.org" <wei.liu@kernel.org>,
	"will@kernel.org" <will@kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Cc: "ssengar@microsoft.com" <ssengar@microsoft.com>,
	"sunilmut@microsoft.com" <sunilmut@microsoft.com>,
	"vdso@hexbites.dev" <vdso@hexbites.dev>
Subject: Re: [PATCH v2 2/6] drivers/hv: Enable VTL mode for arm64
Date: Wed, 15 May 2024 11:04:13 -0700	[thread overview]
Message-ID: <a232ddf5-e6ac-41ec-9f53-d5f76f31e970@linux.microsoft.com> (raw)
In-Reply-To: <SN6PR02MB4157E15EFE263BBA3D8DFC51D4EC2@SN6PR02MB4157.namprd02.prod.outlook.com>



On 5/15/2024 6:37 AM, Michael Kelley wrote:
> From: Roman Kisel <romank@linux.microsoft.com> Sent: Tuesday, May 14, 2024 3:44 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
> 
> These changes make it possible to build a normal VTL 0 Hyper-V
> guest (i.e., CONFIG_HYPERV_VTL_MODE=n) if CONFIG_ACPI is
> not set, which won't work.  While we can say "don't do that", it
> would be better if the Kconfig dependencies expressed that
> requirement.
> 
> A possible fix is to remove the "depends on HYPERV" from
> HYPERV_VTL_MODE.  Then for HYPERV, make
> the "depends on ACPI" be conditional on !HYPERV_VTL_MODE
> (for both ARM64 and X86).
> 
> I think we originally had "depends on HYPERV" in
> HYPERV_VTL_MODE because there was a VTL-related function
> in a non-Hyper-V code path, and we wanted to prevent that code
> from running in non-Hyper-V environments.  But in practice, that
> turned out not to work well because occasionally people would
> do an "all config" build where both CONFIG_HYPERV and
> CONFIG_HYPERV_VTL_MODE were set, and it would panic during
> boot in their non-Hyper-V environment.  Such people were not
> happy. :-(  So Saurabh made a relatively simple change (see commit
> 14058f72cf13e) that got the VTL code out of that non-Hyper-V code
> path.  With that change, it shouldn't matter if someone sets
> CONFIG_HYPERV_VTL_MODE=y in a build where
> CONFIG_HYPERV=n.
> 
> At least that's my theory. :-)  Someone would need to check
> it carefully.
I'll explore that, appreciate sharing the context!

> 
> Michael

-- 
Thank you,
Roman

WARNING: multiple messages have this Message-ID (diff)
From: Roman Kisel <romank@linux.microsoft.com>
To: Michael Kelley <mhklinux@outlook.com>,
	"arnd@arndb.de" <arnd@arndb.de>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"bp@alien8.de" <bp@alien8.de>,
	"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"decui@microsoft.com" <decui@microsoft.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>,
	"hpa@zytor.com" <hpa@zytor.com>, "kw@linux.com" <kw@linux.com>,
	"kys@microsoft.com" <kys@microsoft.com>,
	"lenb@kernel.org" <lenb@kernel.org>,
	"lpieralisi@kernel.org" <lpieralisi@kernel.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"rafael@kernel.org" <rafael@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"wei.liu@kernel.org" <wei.liu@kernel.org>,
	"will@kernel.org" <will@kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>
Cc: "ssengar@microsoft.com" <ssengar@microsoft.com>,
	"sunilmut@microsoft.com" <sunilmut@microsoft.com>,
	"vdso@hexbites.dev" <vdso@hexbites.dev>
Subject: Re: [PATCH v2 2/6] drivers/hv: Enable VTL mode for arm64
Date: Wed, 15 May 2024 11:04:13 -0700	[thread overview]
Message-ID: <a232ddf5-e6ac-41ec-9f53-d5f76f31e970@linux.microsoft.com> (raw)
In-Reply-To: <SN6PR02MB4157E15EFE263BBA3D8DFC51D4EC2@SN6PR02MB4157.namprd02.prod.outlook.com>



On 5/15/2024 6:37 AM, Michael Kelley wrote:
> From: Roman Kisel <romank@linux.microsoft.com> Sent: Tuesday, May 14, 2024 3:44 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
> 
> These changes make it possible to build a normal VTL 0 Hyper-V
> guest (i.e., CONFIG_HYPERV_VTL_MODE=n) if CONFIG_ACPI is
> not set, which won't work.  While we can say "don't do that", it
> would be better if the Kconfig dependencies expressed that
> requirement.
> 
> A possible fix is to remove the "depends on HYPERV" from
> HYPERV_VTL_MODE.  Then for HYPERV, make
> the "depends on ACPI" be conditional on !HYPERV_VTL_MODE
> (for both ARM64 and X86).
> 
> I think we originally had "depends on HYPERV" in
> HYPERV_VTL_MODE because there was a VTL-related function
> in a non-Hyper-V code path, and we wanted to prevent that code
> from running in non-Hyper-V environments.  But in practice, that
> turned out not to work well because occasionally people would
> do an "all config" build where both CONFIG_HYPERV and
> CONFIG_HYPERV_VTL_MODE were set, and it would panic during
> boot in their non-Hyper-V environment.  Such people were not
> happy. :-(  So Saurabh made a relatively simple change (see commit
> 14058f72cf13e) that got the VTL code out of that non-Hyper-V code
> path.  With that change, it shouldn't matter if someone sets
> CONFIG_HYPERV_VTL_MODE=y in a build where
> CONFIG_HYPERV=n.
> 
> At least that's my theory. :-)  Someone would need to check
> it carefully.
I'll explore that, appreciate sharing the context!

> 
> Michael

-- 
Thank you,
Roman

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-05-15 18:04 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-14 22:43 [PATCH v2 0/6] arm64/hyperv: Support Virtual Trust Level Boot Roman Kisel
2024-05-14 22:43 ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 1/6] arm64/hyperv: Support DeviceTree Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15  7:45   ` Krzysztof Kozlowski
2024-05-15  7:45     ` Krzysztof Kozlowski
2024-05-15 17:33     ` Roman Kisel
2024-05-15 17:33       ` Roman Kisel
2024-05-20  6:45       ` Krzysztof Kozlowski
2024-05-20  6:45         ` Krzysztof Kozlowski
2024-05-20 20:36         ` Roman Kisel
2024-05-20 20:36           ` Roman Kisel
2024-05-15 22:02   ` Elliot Berman
2024-05-15 22:02     ` Elliot Berman
2024-05-16 15:27     ` Roman Kisel
2024-05-16 15:27       ` Roman Kisel
2024-06-11 14:55       ` Roman Kisel
2024-06-11 14:55         ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 2/6] drivers/hv: Enable VTL mode for arm64 Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15 13:37   ` Michael Kelley
2024-05-15 13:37     ` Michael Kelley
2024-05-15 18:04     ` Roman Kisel [this message]
2024-05-15 18:04       ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 3/6] drivers/hv: arch-neutral implementation of get_vtl() Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15 13:38   ` Michael Kelley
2024-05-15 13:38     ` Michael Kelley
2024-05-15 18:11     ` Roman Kisel
2024-05-15 18:11       ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 4/6] arm64/hyperv: Boot in a Virtual Trust Level Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15 13:39   ` Michael Kelley
2024-05-15 13:39     ` Michael Kelley
2024-05-15 18:13     ` Roman Kisel
2024-05-15 18:13       ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 5/6] drivers/hv/vmbus: Get the irq number from DeviceTree Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15  7:47   ` Krzysztof Kozlowski
2024-05-15  7:47     ` Krzysztof Kozlowski
2024-05-15 17:05     ` Roman Kisel
2024-05-15 17:05       ` Roman Kisel
2024-05-15  9:42   ` Saurabh Singh Sengar
2024-05-15  9:42     ` Saurabh Singh Sengar
2024-05-15 16:31     ` Roman Kisel
2024-05-15 16:31       ` Roman Kisel
2024-05-15 13:44   ` Michael Kelley
2024-05-15 13:44     ` Michael Kelley
2024-05-15 18:21     ` Roman Kisel
2024-05-15 18:21       ` Roman Kisel
2024-05-16  2:40   ` kernel test robot
2024-05-16  2:40     ` kernel test robot
2024-05-17 17:14   ` Rob Herring
2024-05-17 17:14     ` Rob Herring
2024-05-20 19:25     ` Roman Kisel
2024-05-20 19:25       ` Roman Kisel
2024-05-14 22:43 ` [PATCH v2 6/6] drivers/pci/hyperv/arm64: vPCI MSI IRQ domain from DT Roman Kisel
2024-05-14 22:43   ` Roman Kisel
2024-05-15  9:48   ` Saurabh Singh Sengar
2024-05-15  9:48     ` Saurabh Singh Sengar
2024-05-15 16:34     ` Roman Kisel
2024-05-15 16:34       ` Roman Kisel
2024-05-15 18:12       ` Bjorn Helgaas
2024-05-15 18:12         ` Bjorn Helgaas
2024-05-15 18:34         ` Roman Kisel
2024-05-15 18:34           ` Roman Kisel
2024-06-07 19:55         ` Bjorn Helgaas
2024-06-07 19:55           ` Bjorn Helgaas
2024-06-11 14:40           ` Roman Kisel
2024-06-11 14:40             ` Roman Kisel
2024-05-15 13:47   ` Michael Kelley
2024-05-15 13:47     ` Michael Kelley
2024-05-15 18:31     ` Roman Kisel
2024-05-15 18:31       ` 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=a232ddf5-e6ac-41ec-9f53-d5f76f31e970@linux.microsoft.com \
    --to=romank@linux.microsoft.com \
    --cc=arnd@arndb.de \
    --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@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.