[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 12/12] x86/xpti: add per-domain parameter for controlling xpti
Add a per-domain parameter to switch xpti for single pv domains on or off. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- docs/man/xl.cfg.pod.5.in | 12 +++++++++++- xen/arch/x86/pv/domain.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/docs/man/xl.cfg.pod.5.in b/docs/man/xl.cfg.pod.5.in index c97ae77129..524f9f23d4 100644 --- a/docs/man/xl.cfg.pod.5.in +++ b/docs/man/xl.cfg.pod.5.in @@ -612,7 +612,17 @@ The following parameter settings are supported: =over 4 -NONE +=item B<xpti=BOOLEAN> + +Override default selection of whether to isolate 64-bit PV guest page +tables of a domain. + +B<true> activates page table isolation even on hardware not vulnerable by +Meltdown for the domain. + +B<false> deactivates page table isolation on all systems for the domain. + +Can be modified at runtime. =back diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c index 355f320fa3..86d9f8fb67 100644 --- a/xen/arch/x86/pv/domain.c +++ b/xen/arch/x86/pv/domain.c @@ -287,6 +287,43 @@ int pv_domain_initialise(struct domain *d) return rc; } +static int dompar_xpti(const char *s, struct domain *d) +{ + switch ( parse_bool(s, NULL) ) + { + case 0: + d->arch.pv.xpti = false; + break; + + case 1: + d->arch.pv.xpti = true; + break; + + default: + return -EINVAL; + } + + switch ( opt_pcid ) + { + case PCID_XPTI: + d->arch.pv.pcid = d->arch.pv.xpti; + break; + + case PCID_NOXPTI: + d->arch.pv.pcid = !d->arch.pv.xpti; + break; + + default: + break; + } + + return 0; +} + +custom_domain_param("xpti", + PARAM_FLAG_RUNTIME | PARAM_FLAG_NOHVM | PARAM_FLAG_NOPV32, + dompar_xpti); + bool __init xpti_pcid_enabled(void) { return use_invpcid && cpu_has_pcid && -- 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |