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

From: Saurabh Singh Sengar
Date: Wed May 24 2023 - 12:10:13 EST




> -----Original Message-----
> From: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx>
> Sent: Saturday, May 20, 2023 10:20 PM
> To: Saurabh Sengar <ssengar@xxxxxxxxxxxxxxxxxxx>; tglx@xxxxxxxxxxxxx;
> mingo@xxxxxxxxxx; bp@xxxxxxxxx; dave.hansen@xxxxxxxxxxxxxxx;
> x86@xxxxxxxxxx; hpa@xxxxxxxxx; KY Srinivasan <kys@xxxxxxxxxxxxx>;
> Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; wei.liu@xxxxxxxxxx; Dexuan Cui
> <decui@xxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; linux-
> hyperv@xxxxxxxxxxxxxxx
> Cc: Saurabh Singh Sengar <ssengar@xxxxxxxxxxxxx>
> Subject: [EXTERNAL] RE: [PATCH 2/2] Drivers: hv: Kconfig: Add
> HYPERV_VTL_MODE dependencies
>
> From: Saurabh Sengar <ssengar@xxxxxxxxxxxxxxxxxxx>
> >
> > 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 <ssengar@xxxxxxxxxxxxxxxxxxx>
> > ---
> > 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