|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH for-4.19 v3 2/3] xen: enable altp2m at create domain domctl
On Tue, May 21, 2024 at 12:30:32PM +0200, Jan Beulich wrote:
> On 17.05.2024 15:33, Roger Pau Monne wrote:
> > Enabling it using an HVM param is fragile, and complicates the logic when
> > deciding whether options that interact with altp2m can also be enabled.
> >
> > Leave the HVM param value for consumption by the guest, but prevent it from
> > being set. Enabling is now done using and additional altp2m specific field
> > in
> > xen_domctl_createdomain.
> >
> > Note that albeit only currently implemented in x86, altp2m could be
> > implemented
> > in other architectures, hence why the field is added to
> > xen_domctl_createdomain
> > instead of xen_arch_domainconfig.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> # hypervisor
> albeit with one question:
>
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -637,6 +637,8 @@ int arch_sanitise_domain_config(struct
> > xen_domctl_createdomain *config)
> > bool hap = config->flags & XEN_DOMCTL_CDF_hap;
> > bool nested_virt = config->flags & XEN_DOMCTL_CDF_nested_virt;
> > unsigned int max_vcpus;
> > + unsigned int altp2m_mode = MASK_EXTR(config->altp2m_opts,
> > + XEN_DOMCTL_ALTP2M_mode_mask);
> >
> > if ( hvm ? !hvm_enabled : !IS_ENABLED(CONFIG_PV) )
> > {
> > @@ -715,6 +717,26 @@ int arch_sanitise_domain_config(struct
> > xen_domctl_createdomain *config)
> > return -EINVAL;
> > }
> >
> > + if ( config->altp2m_opts & ~XEN_DOMCTL_ALTP2M_mode_mask )
> > + {
> > + dprintk(XENLOG_INFO, "Invalid altp2m options selected: %#x\n",
> > + config->flags);
> > + return -EINVAL;
> > + }
> > +
> > + if ( altp2m_mode && nested_virt )
> > + {
> > + dprintk(XENLOG_INFO,
> > + "Nested virt and altp2m are not supported together\n");
> > + return -EINVAL;
> > + }
> > +
> > + if ( altp2m_mode && !hap )
> > + {
> > + dprintk(XENLOG_INFO, "altp2m is only supported with HAP\n");
> > + return -EINVAL;
> > + }
>
> Should this last one perhaps be further extended to permit altp2m with EPT
> only?
Hm, yes, that would be more accurate as:
if ( altp2m_mode && (!hap || !hvm_altp2m_supported()) )
Would you be fine adjusting at commit, or would you prefer me to send
an updated version?
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |