2023-05-11 15:08:49

by Saurabh Singh Sengar

[permalink] [raw]
Subject: [PATCH 2/2] Drivers: hv: Kconfig: Add HYPERV_VTL_MODE dependencies

MTRRs are not per-VTL and are controlled by VTL0, make sure it
is disabled for all other VTLs.

X86_MPPARSE scans low memory for MP tables, which is not required
for Hyper-V VTL platforms.

Signed-off-by: Saurabh Sengar <[email protected]>
---
drivers/hv/Kconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index 00242107d62e..c8d443886b9d 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -16,6 +16,8 @@ config HYPERV
config HYPERV_VTL_MODE
bool "Enable Linux to boot in VTL context"
depends on X86_64 && HYPERV
+ depends on !MTRR
+ depends on !X86_MPPARSE
default n
help
Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
--
2.34.1



2023-05-20 17:42:26

by Michael Kelley (LINUX)

[permalink] [raw]
Subject: RE: [PATCH 2/2] Drivers: hv: Kconfig: Add HYPERV_VTL_MODE dependencies

From: Saurabh Sengar <[email protected]>
>
> MTRRs are not per-VTL and are controlled by VTL0, make sure it
> is disabled for all other VTLs.

Clarifying the wording a bit:

MTRRs are not per-VTL, but are always controlled by VTL0. Allow
building for VTLs other than VTL0 only when MTRR functionality
is disabled.

>
> X86_MPPARSE scans low memory for MP tables, which is not required
> for Hyper-V VTL platforms.

Is the above statement saying that MP tables aren't required, so remove
the code to save space? Or is there a problem/failure if MP table code
runs and scans low memory? *Requiring* that it be disabled, and the
reference to scanning low memory makes me think it might be the latter,
in which case I'd suggest this more forceful wording:

The MP table code scans low memory, which causes failures in VTLs
other than VTL0. Allow building for VTLs other than VTL0 only when
MP table functionality is disabled.

If you can give slightly more detail about "causes failures" (a panic?
some other problem?) that would be good too.

Michael

>
> Signed-off-by: Saurabh Sengar <[email protected]>
> ---
> drivers/hv/Kconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> index 00242107d62e..c8d443886b9d 100644
> --- a/drivers/hv/Kconfig
> +++ b/drivers/hv/Kconfig
> @@ -16,6 +16,8 @@ config HYPERV
> config HYPERV_VTL_MODE
> bool "Enable Linux to boot in VTL context"
> depends on X86_64 && HYPERV
> + depends on !MTRR
> + depends on !X86_MPPARSE
> default n
> help
> Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
> --
> 2.34.1


2023-05-24 16:58:17

by Saurabh Singh Sengar

[permalink] [raw]
Subject: RE: [PATCH 2/2] Drivers: hv: Kconfig: Add HYPERV_VTL_MODE dependencies



> -----Original Message-----
> From: Michael Kelley (LINUX) <[email protected]>
> Sent: Saturday, May 20, 2023 10:20 PM
> To: Saurabh Sengar <[email protected]>; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; KY Srinivasan <[email protected]>;
> Haiyang Zhang <[email protected]>; [email protected]; Dexuan Cui
> <[email protected]>; [email protected]; linux-
> [email protected]
> Cc: Saurabh Singh Sengar <[email protected]>
> Subject: [EXTERNAL] RE: [PATCH 2/2] Drivers: hv: Kconfig: Add
> HYPERV_VTL_MODE dependencies
>
> From: Saurabh Sengar <[email protected]>
> >
> > MTRRs are not per-VTL and are controlled by VTL0, make sure it is
> > disabled for all other VTLs.
>
> Clarifying the wording a bit:
>
> MTRRs are not per-VTL, but are always controlled by VTL0. Allow
> building for VTLs other than VTL0 only when MTRR functionality is disabled.

Ok

>
> >
> > X86_MPPARSE scans low memory for MP tables, which is not required for
> > Hyper-V VTL platforms.
>
> Is the above statement saying that MP tables aren't required, so remove the
> code to save space? Or is there a problem/failure if MP table code
> runs and scans low memory? *Requiring* that it be disabled, and the
> reference to scanning low memory makes me think it might be the latter, in
> which case I'd suggest this more forceful wording:
>
> The MP table code scans low memory, which causes failures in VTLs
> other than VTL0. Allow building for VTLs other than VTL0 only when
> MP table functionality is disabled.

Ok

>
> If you can give slightly more detail about "causes failures" (a panic?
> some other problem?) that would be good too.

When CONFIG_X86_MPPARSE is enabled, the kernel will scan low memory,
looking for MP tables. In Hyper-V VBS setup, lower memory is assigned to
VTL0. This lower memory may contain the actual MPPARSE table for VTL0,
which can confuse the VTLx kernel and cause issues. (x > 0)

>
> Michael
>
> >
> > Signed-off-by: Saurabh Sengar <[email protected]>
> > ---
> > drivers/hv/Kconfig | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig index
> > 00242107d62e..c8d443886b9d 100644
> > --- a/drivers/hv/Kconfig
> > +++ b/drivers/hv/Kconfig
> > @@ -16,6 +16,8 @@ config HYPERV
> > config HYPERV_VTL_MODE
> > bool "Enable Linux to boot in VTL context"
> > depends on X86_64 && HYPERV
> > + depends on !MTRR
> > + depends on !X86_MPPARSE
> > default n
> > help
> > Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
> > --
> > 2.34.1