|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3] x86/dom0: delay setting SMAP after dom0 build is done
On Thu, Aug 01, 2024 at 05:58:38PM +0200, Jan Beulich wrote:
> On 01.08.2024 17:36, Roger Pau Monné wrote:
> > On Thu, Aug 01, 2024 at 12:28:06PM +0200, Jan Beulich wrote:
> >> On 01.08.2024 11:52, Roger Pau Monne wrote:
> >>> @@ -1907,16 +1890,25 @@ void asmlinkage __init noreturn
> >>> __start_xen(unsigned long mbi_p)
> >>> if ( cpu_has_smep && opt_smep != SMEP_HVM_ONLY )
> >>> setup_force_cpu_cap(X86_FEATURE_XEN_SMEP);
> >>> if ( boot_cpu_has(X86_FEATURE_XEN_SMEP) )
> >>> + {
> >>> set_in_cr4(X86_CR4_SMEP);
> >>> + cr4_pv32_mask = mmu_cr4_features & XEN_CR4_PV32_BITS;
> >>
> >> Could be just "cr4_pv32_mask = X86_CR4_SMEP" now?
> >
> > Yes, indeed, same below then.
> >
> >>> + }
> >>>
> >>> if ( !opt_smap )
> >>> setup_clear_cpu_cap(X86_FEATURE_SMAP);
> >>> if ( cpu_has_smap && opt_smap != SMAP_HVM_ONLY )
> >>> setup_force_cpu_cap(X86_FEATURE_XEN_SMAP);
> >>> if ( boot_cpu_has(X86_FEATURE_XEN_SMAP) )
> >>> - set_in_cr4(X86_CR4_SMAP);
> >>> -
> >>> - cr4_pv32_mask = mmu_cr4_features & XEN_CR4_PV32_BITS;
> >>> + /*
> >>> + * Set SMAP on the %cr4 mask so that it's set for APs on
> >>> bringup, but
> >>> + * don't set for the BSP until domain building is done.
> >>> + *
> >>> + * Don't set it in cr4_pv32_mask either, until it's also set on
> >>> the
> >>> + * BSP. Otherwise the BUG in cr4_pv32_restore would trigger for
> >>> events
> >>> + * received on the BSP.
> >>> + */
> >>> + mmu_cr4_features |= X86_CR4_SMAP;
> >>
> >> Don't you put APs at risk this way of triggering the BUG in
> >> cr4_pv32_restore()?
> >> They'll have the bit set in %cr4, but the bit remains clear in
> >> cr4_pv32_mask
> >> until much later.
> >
> > As long as the bit is set in %cr4, but not in cr4_pv32_mask the BUG in
> > cr4_pv32_restore won't hit.
>
> Hmm, you're right. Despite staring at that for quite some time, I got
> it wrong. Feel free to add
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> then, preferably with said minor adjustment (left in context above).
Sure, thanks!
Will adjust and send v4.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |