* [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions
@ 2023-06-23 16:28 Saurabh Sengar
2023-06-28 17:58 ` Wei Liu
2023-08-02 23:10 ` Wei Liu
0 siblings, 2 replies; 5+ messages in thread
From: Saurabh Sengar @ 2023-06-23 16:28 UTC (permalink / raw)
To: kys, haiyangz, wei.liu, decui, tglx, mingo, bp, dave.hansen, x86,
mikelley, linux-kernel, linux-hyperv, hpa
Hyper-V can run VMs at different privilege "levels" known as Virtual
Trust Levels (VTL). Sometimes, it chooses to run two different VMs
at different levels but they share some of their address space. In
such setups VTL2 (higher level VM) has visibility of all of the
VTL0 (level 0) memory space.
When the CONFIG_X86_MPPARSE is enabled for VTL2, the VTL2 kernel
performs a search within the low memory to locate MP tables. However,
in systems where VTL0 manages the low memory and may contain valid
tables, this scanning can result in incorrect MP table information
being provided to the VTL2 kernel, mistakenly considering VTL0's MP
table as its own
Add noop functions to avoid MP parse scan by VTL2.
Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
---
[V3]
- modify commit message.
arch/x86/hyperv/hv_vtl.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
index 85d38b9f3586..db5d2ea39fc0 100644
--- a/arch/x86/hyperv/hv_vtl.c
+++ b/arch/x86/hyperv/hv_vtl.c
@@ -25,6 +25,10 @@ void __init hv_vtl_init_platform(void)
x86_init.irqs.pre_vector_init = x86_init_noop;
x86_init.timers.timer_init = x86_init_noop;
+ /* Avoid searching for BIOS MP tables */
+ x86_init.mpparse.find_smp_config = x86_init_noop;
+ x86_init.mpparse.get_smp_config = x86_init_uint_noop;
+
x86_platform.get_wallclock = get_rtc_noop;
x86_platform.set_wallclock = set_rtc_noop;
x86_platform.get_nmi_reason = hv_get_nmi_reason;
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions
2023-06-23 16:28 [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions Saurabh Sengar
@ 2023-06-28 17:58 ` Wei Liu
2023-07-21 12:58 ` [EXTERNAL] " Saurabh Singh Sengar
2023-08-02 23:10 ` Wei Liu
1 sibling, 1 reply; 5+ messages in thread
From: Wei Liu @ 2023-06-28 17:58 UTC (permalink / raw)
To: Saurabh Sengar
Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, bp, dave.hansen, x86,
mikelley, linux-kernel, linux-hyperv, hpa
On Fri, Jun 23, 2023 at 09:28:08AM -0700, Saurabh Sengar wrote:
> Hyper-V can run VMs at different privilege "levels" known as Virtual
> Trust Levels (VTL). Sometimes, it chooses to run two different VMs
> at different levels but they share some of their address space. In
> such setups VTL2 (higher level VM) has visibility of all of the
> VTL0 (level 0) memory space.
>
> When the CONFIG_X86_MPPARSE is enabled for VTL2, the VTL2 kernel
> performs a search within the low memory to locate MP tables. However,
> in systems where VTL0 manages the low memory and may contain valid
> tables, this scanning can result in incorrect MP table information
> being provided to the VTL2 kernel, mistakenly considering VTL0's MP
> table as its own
>
> Add noop functions to avoid MP parse scan by VTL2.
>
> Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
Hi Dave, are you happy with the commit message?
> ---
> [V3]
> - modify commit message.
>
> arch/x86/hyperv/hv_vtl.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
> index 85d38b9f3586..db5d2ea39fc0 100644
> --- a/arch/x86/hyperv/hv_vtl.c
> +++ b/arch/x86/hyperv/hv_vtl.c
> @@ -25,6 +25,10 @@ void __init hv_vtl_init_platform(void)
> x86_init.irqs.pre_vector_init = x86_init_noop;
> x86_init.timers.timer_init = x86_init_noop;
>
> + /* Avoid searching for BIOS MP tables */
> + x86_init.mpparse.find_smp_config = x86_init_noop;
> + x86_init.mpparse.get_smp_config = x86_init_uint_noop;
> +
> x86_platform.get_wallclock = get_rtc_noop;
> x86_platform.set_wallclock = set_rtc_noop;
> x86_platform.get_nmi_reason = hv_get_nmi_reason;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [EXTERNAL] Re: [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions
2023-06-28 17:58 ` Wei Liu
@ 2023-07-21 12:58 ` Saurabh Singh Sengar
2023-08-01 21:52 ` Dave Hansen
0 siblings, 1 reply; 5+ messages in thread
From: Saurabh Singh Sengar @ 2023-07-21 12:58 UTC (permalink / raw)
To: Wei Liu, Saurabh Sengar, dave.hansen@linux.intel.com
Cc: KY Srinivasan, Haiyang Zhang, Dexuan Cui, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
x86@kernel.org, Michael Kelley (LINUX),
linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
hpa@zytor.com
> -----Original Message-----
> From: Wei Liu <wei.liu@kernel.org>
> Sent: Wednesday, June 28, 2023 11:29 PM
> To: Saurabh Sengar <ssengar@linux.microsoft.com>
> Cc: KY Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; wei.liu@kernel.org; Dexuan Cui
> <decui@microsoft.com>; tglx@linutronix.de; mingo@redhat.com;
> bp@alien8.de; dave.hansen@linux.intel.com; x86@kernel.org; Michael Kelley
> (LINUX) <mikelley@microsoft.com>; linux-kernel@vger.kernel.org; linux-
> hyperv@vger.kernel.org; hpa@zytor.com
> Subject: [EXTERNAL] Re: [PATCH v3] x86/hyperv: add noop functions to
> x86_init mpparse functions
>
> On Fri, Jun 23, 2023 at 09:28:08AM -0700, Saurabh Sengar wrote:
> > Hyper-V can run VMs at different privilege "levels" known as Virtual
> > Trust Levels (VTL). Sometimes, it chooses to run two different VMs at
> > different levels but they share some of their address space. In such
> > setups VTL2 (higher level VM) has visibility of all of the
> > VTL0 (level 0) memory space.
> >
> > When the CONFIG_X86_MPPARSE is enabled for VTL2, the VTL2 kernel
> > performs a search within the low memory to locate MP tables. However,
> > in systems where VTL0 manages the low memory and may contain valid
> > tables, this scanning can result in incorrect MP table information
> > being provided to the VTL2 kernel, mistakenly considering VTL0's MP
> > table as its own
> >
> > Add noop functions to avoid MP parse scan by VTL2.
> >
> > Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
>
> Hi Dave, are you happy with the commit message?
HI Dave,
If there is no concern, can I get your ack
- Saurabh
>
> > ---
> > [V3]
> > - modify commit message.
> >
> > arch/x86/hyperv/hv_vtl.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index
> > 85d38b9f3586..db5d2ea39fc0 100644
> > --- a/arch/x86/hyperv/hv_vtl.c
> > +++ b/arch/x86/hyperv/hv_vtl.c
> > @@ -25,6 +25,10 @@ void __init hv_vtl_init_platform(void)
> > x86_init.irqs.pre_vector_init = x86_init_noop;
> > x86_init.timers.timer_init = x86_init_noop;
> >
> > + /* Avoid searching for BIOS MP tables */
> > + x86_init.mpparse.find_smp_config = x86_init_noop;
> > + x86_init.mpparse.get_smp_config = x86_init_uint_noop;
> > +
> > x86_platform.get_wallclock = get_rtc_noop;
> > x86_platform.set_wallclock = set_rtc_noop;
> > x86_platform.get_nmi_reason = hv_get_nmi_reason;
> > --
> > 2.34.1
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [EXTERNAL] Re: [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions
2023-07-21 12:58 ` [EXTERNAL] " Saurabh Singh Sengar
@ 2023-08-01 21:52 ` Dave Hansen
0 siblings, 0 replies; 5+ messages in thread
From: Dave Hansen @ 2023-08-01 21:52 UTC (permalink / raw)
To: Saurabh Singh Sengar, Wei Liu, Saurabh Sengar,
dave.hansen@linux.intel.com
Cc: KY Srinivasan, Haiyang Zhang, Dexuan Cui, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, x86@kernel.org,
Michael Kelley (LINUX), linux-kernel@vger.kernel.org,
linux-hyperv@vger.kernel.org, hpa@zytor.com
On 7/21/23 05:58, Saurabh Singh Sengar wrote:
>> On Fri, Jun 23, 2023 at 09:28:08AM -0700, Saurabh Sengar wrote:
>>> Hyper-V can run VMs at different privilege "levels" known as Virtual
>>> Trust Levels (VTL). Sometimes, it chooses to run two different VMs at
>>> different levels but they share some of their address space. In such
>>> setups VTL2 (higher level VM) has visibility of all of the
>>> VTL0 (level 0) memory space.
>>>
>>> When the CONFIG_X86_MPPARSE is enabled for VTL2, the VTL2 kernel
>>> performs a search within the low memory to locate MP tables. However,
>>> in systems where VTL0 manages the low memory and may contain valid
>>> tables, this scanning can result in incorrect MP table information
>>> being provided to the VTL2 kernel, mistakenly considering VTL0's MP
>>> table as its own
>>>
>>> Add noop functions to avoid MP parse scan by VTL2.
>>>
>>> Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
>> Hi Dave, are you happy with the commit message?
> HI Dave,
>
> If there is no concern, can I get your ack
Looks sane:
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Although, if you muck with this any more having actual facts on what the
"incorrect MP table information" causes would be nice too.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions
2023-06-23 16:28 [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions Saurabh Sengar
2023-06-28 17:58 ` Wei Liu
@ 2023-08-02 23:10 ` Wei Liu
1 sibling, 0 replies; 5+ messages in thread
From: Wei Liu @ 2023-08-02 23:10 UTC (permalink / raw)
To: Saurabh Sengar
Cc: kys, haiyangz, wei.liu, decui, tglx, mingo, bp, dave.hansen, x86,
mikelley, linux-kernel, linux-hyperv, hpa
On Fri, Jun 23, 2023 at 09:28:08AM -0700, Saurabh Sengar wrote:
> Hyper-V can run VMs at different privilege "levels" known as Virtual
> Trust Levels (VTL). Sometimes, it chooses to run two different VMs
> at different levels but they share some of their address space. In
> such setups VTL2 (higher level VM) has visibility of all of the
> VTL0 (level 0) memory space.
>
> When the CONFIG_X86_MPPARSE is enabled for VTL2, the VTL2 kernel
> performs a search within the low memory to locate MP tables. However,
> in systems where VTL0 manages the low memory and may contain valid
> tables, this scanning can result in incorrect MP table information
> being provided to the VTL2 kernel, mistakenly considering VTL0's MP
> table as its own
>
> Add noop functions to avoid MP parse scan by VTL2.
>
> Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
Applied to hyperv-fixes. Thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-08-02 23:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-23 16:28 [PATCH v3] x86/hyperv: add noop functions to x86_init mpparse functions Saurabh Sengar
2023-06-28 17:58 ` Wei Liu
2023-07-21 12:58 ` [EXTERNAL] " Saurabh Singh Sengar
2023-08-01 21:52 ` Dave Hansen
2023-08-02 23:10 ` Wei Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).