[Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
Signed-off-by: Jan Beulich --- a/xen/arch/x86/pv/domain.c +++ b/xen/arch/x86/pv/domain.c @@ -288,6 +288,12 @@ int pv_domain_initialise(struct domain * return rc; } +bool __init xpti_pcid_enabled(void) +{ +return use_invpcid && cpu_has_pcid && + (opt_pcid == PCID_ALL || opt_pcid == PCID_XPTI); +} + static void _toggle_guest_pt(struct vcpu *v) { const struct domain *d = v->domain; --- a/xen/arch/x86/spec_ctrl.c +++ b/xen/arch/x86/spec_ctrl.c @@ -256,9 +256,10 @@ static void __init print_details(enum in boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ? " RSB" : "", opt_eager_fpu ? " EAGER_FPU" : ""); -printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s\n", +printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n", opt_xpti & OPT_XPTI_DOM0 ? "enabled" : "disabled", - opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled"); + opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled", + xpti_pcid_enabled() ? "" : "out"); } /* Calculate whether Retpoline is known-safe on this CPU. */ --- a/xen/include/asm-x86/spec_ctrl.h +++ b/xen/include/asm-x86/spec_ctrl.h @@ -38,6 +38,8 @@ extern uint8_t opt_xpti; #define OPT_XPTI_DOM0 0x01 #define OPT_XPTI_DOMU 0x02 +bool xpti_pcid_enabled(void); + static inline void init_shadow_spec_ctrl_state(void) { struct cpu_info *info = get_cpu_info(); ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
On 16/07/18 17:45, Jan Beulich wrote: > --- a/xen/include/asm-x86/spec_ctrl.h > +++ b/xen/include/asm-x86/spec_ctrl.h > @@ -38,6 +38,8 @@ extern uint8_t opt_xpti; > #define OPT_XPTI_DOM0 0x01 > #define OPT_XPTI_DOMU 0x02 > > +bool xpti_pcid_enabled(void); To be used in the way you want, this needs a stub for the non CONFIG_PV case, and should probably be in pv/domain.h ~Andrew ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
On Mon, Jul 16, 2018 at 10:45:15AM -0600, Jan Beulich wrote: > Signed-off-by: Jan Beulich > > --- a/xen/arch/x86/pv/domain.c > +++ b/xen/arch/x86/pv/domain.c > @@ -288,6 +288,12 @@ int pv_domain_initialise(struct domain * > return rc; > } > > +bool __init xpti_pcid_enabled(void) > +{ > +return use_invpcid && cpu_has_pcid && > + (opt_pcid == PCID_ALL || opt_pcid == PCID_XPTI); > +} > + > static void _toggle_guest_pt(struct vcpu *v) > { > const struct domain *d = v->domain; > --- a/xen/arch/x86/spec_ctrl.c > +++ b/xen/arch/x86/spec_ctrl.c > @@ -256,9 +256,10 @@ static void __init print_details(enum in > boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ? " RSB" : "", > opt_eager_fpu ? " EAGER_FPU" : > ""); > > -printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s\n", > +printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n", > opt_xpti & OPT_XPTI_DOM0 ? "enabled" : "disabled", > - opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled"); > + opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled", > + xpti_pcid_enabled() ? "" : "out"); > } Maybe you could place xpti_pcid_enabled in spec_ctrl.c, or just open code it (possibly with a bool) in print_details? Roger. ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
>>> On 17.07.18 at 13:05, wrote: > On Mon, Jul 16, 2018 at 10:45:15AM -0600, Jan Beulich wrote: >> Signed-off-by: Jan Beulich >> >> --- a/xen/arch/x86/pv/domain.c >> +++ b/xen/arch/x86/pv/domain.c >> @@ -288,6 +288,12 @@ int pv_domain_initialise(struct domain * >> return rc; >> } >> >> +bool __init xpti_pcid_enabled(void) >> +{ >> +return use_invpcid && cpu_has_pcid && >> + (opt_pcid == PCID_ALL || opt_pcid == PCID_XPTI); >> +} >> + >> static void _toggle_guest_pt(struct vcpu *v) >> { >> const struct domain *d = v->domain; >> --- a/xen/arch/x86/spec_ctrl.c >> +++ b/xen/arch/x86/spec_ctrl.c >> @@ -256,9 +256,10 @@ static void __init print_details(enum in >> boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ? " RSB" : >> "", >> opt_eager_fpu ? " EAGER_FPU" : >> ""); >> >> -printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s\n", >> +printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n", >> opt_xpti & OPT_XPTI_DOM0 ? "enabled" : "disabled", >> - opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled"); >> + opt_xpti & OPT_XPTI_DOMU ? "enabled" : "disabled", >> + xpti_pcid_enabled() ? "" : "out"); >> } > > Maybe you could place xpti_pcid_enabled in spec_ctrl.c, or just open > code it (possibly with a bool) in print_details? I very definitely want it to sit next to pv_domain_initialise(), so that the similar logic can be easily seen and compared. Jan ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
On Mon, Jul 16, 2018 at 10:45:15AM -0600, Jan Beulich wrote: > Signed-off-by: Jan Beulich > > --- a/xen/arch/x86/pv/domain.c > +++ b/xen/arch/x86/pv/domain.c > @@ -288,6 +288,12 @@ int pv_domain_initialise(struct domain * > return rc; > } > > +bool __init xpti_pcid_enabled(void) > +{ > +return use_invpcid && cpu_has_pcid && > + (opt_pcid == PCID_ALL || opt_pcid == PCID_XPTI); > +} > + > static void _toggle_guest_pt(struct vcpu *v) > { > const struct domain *d = v->domain; > --- a/xen/arch/x86/spec_ctrl.c > +++ b/xen/arch/x86/spec_ctrl.c > @@ -256,9 +256,10 @@ static void __init print_details(enum in > boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ? " RSB" : "", > opt_eager_fpu ? " EAGER_FPU" : > ""); > > -printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s\n", > +printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n", Do you ever foresee wanting to add another flag in here? It might be better to just have "with: %s" and do xpti_pcid_enabled ? "PCID" : "" if you do. If not then this seems like a good addition to me and is definitely welcome to folks wanting to know if they're using PCID. Reviewed-by: Doug Goldstein ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status
>>> On 17.07.18 at 22:52, wrote: > On Mon, Jul 16, 2018 at 10:45:15AM -0600, Jan Beulich wrote: >> --- a/xen/arch/x86/spec_ctrl.c >> +++ b/xen/arch/x86/spec_ctrl.c >> @@ -256,9 +256,10 @@ static void __init print_details(enum in >> boot_cpu_has(X86_FEATURE_SC_RSB_HVM) ? " RSB" : >> "", >> opt_eager_fpu ? " EAGER_FPU" : >> ""); >> >> -printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s\n", >> +printk(" XPTI (64-bit PV only): Dom0 %s, DomU %s (with%s PCID)\n", > > Do you ever foresee wanting to add another flag in here? It might be > better to just have "with: %s" and do xpti_pcid_enabled ? "PCID" : "" if > you do. If not then this seems like a good addition to me and is > definitely welcome to folks wanting to know if they're using PCID. I don't foresee additions here. Re-arranging this can be done if and when such an addition becomes necessary. > Reviewed-by: Doug Goldstein Thanks, Jan ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel