[Xen-devel] [PATCH] x86: report use of PCID together with reporting XPTI status

2018-07-16 Thread Jan Beulich
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

2018-07-16 Thread Andrew Cooper
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

2018-07-17 Thread Roger Pau Monné
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

2018-07-17 Thread Jan Beulich
>>> 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

2018-07-17 Thread Doug Goldstein
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

2018-07-17 Thread Jan Beulich
>>> 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