On Mon, Feb 09, 2026 at 05:26:54PM +0100, Alejandro Vallejo wrote: > On Mon Feb 9, 2026 at 5:11 PM CET, Roger Pau Monné wrote: > > On Mon, Feb 09, 2026 at 05:02:26PM +0100, Alejandro Vallejo wrote: > >> On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote: > >> > If shadow paging has been compiled out short circuit the creation of HVM > >> > guests that attempt to use shadow paging at > >> > arch_sanitise_domain_config(). > >> > There's no need to further build the domain when creation is doomed to > >> > fail > >> > later on. > >> > > >> > Signed-off-by: Roger Pau Monné <[email protected]> > >> > --- > >> > xen/arch/x86/domain.c | 6 ++++++ > >> > 1 file changed, 6 insertions(+) > >> > > >> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c > >> > index 8b2f33f1a06c..8eb1509782ef 100644 > >> > --- a/xen/arch/x86/domain.c > >> > +++ b/xen/arch/x86/domain.c > >> > @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct > >> > xen_domctl_createdomain *config) > >> > return -EINVAL; > >> > } > >> > > >> > + if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) ) > >> > + { > >> > + dprintk(XENLOG_INFO, "Shadow paging requested but not > >> > available\n"); > >> > >> nit: s/requested/required/, maybe? > > > > The wording matches the rest of the messages in > > arch_sanitise_domain_config(). I'm not saying that makes it correct, > > but if we word this differently we should also change the others > > IMO. > > My point is rather that HAP, or relaxed MSRs, or other settings are actively > requested via createdomain flags. Shadow is instead the consequence of not > setting HAP. You don't request shadow, you either requested something else or > you hit the error. > > It's not terrible wording, just imprecise.
Hm, I see. I've always considered not requesting HAP equivalent to requesting shadow. IOW: not setting XEN_DOMCTL_CDF_hap doesn't mean "pick any possible option" but rather it's an explicit request to use shadow paging on HVM. The interface would possibly be cleaner if we had both a HAP and Shadow flags, and lack of any being selected could mean for Xen to pick the default one. Thanks, Roger.
