diff mbox

tools/libxc: Add xstate cpuid leaf of avx512

Message ID 1478248158-29112-1-git-send-email-luwei.kang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Luwei Kang Nov. 4, 2016, 8:29 a.m. UTC
Enable get xstate cpuid leaf information regarding avx512 in guest.

Signed-off-by: Luwei Kang <luwei.kang@intel.com>
---
 tools/libxc/xc_cpuid_x86.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Andrew Cooper Nov. 4, 2016, 10:20 a.m. UTC | #1
On 04/11/16 08:29, Luwei Kang wrote:
> Enable get xstate cpuid leaf information regarding avx512 in guest.
>
> Signed-off-by: Luwei Kang <luwei.kang@intel.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
>  tools/libxc/xc_cpuid_x86.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> index de06b32..d761805 100644
> --- a/tools/libxc/xc_cpuid_x86.c
> +++ b/tools/libxc/xc_cpuid_x86.c
> @@ -406,6 +406,9 @@ static void intel_xc_cpuid_policy(xc_interface *xch,
>  #define X86_XCR0_AVX    (1ULL <<  2)
>  #define X86_XCR0_BNDREG (1ULL <<  3)
>  #define X86_XCR0_BNDCSR (1ULL <<  4)
> +#define X86_XCR0_OPMASK (1ULL <<  5)
> +#define X86_XCR0_ZMM    (1ULL <<  6)
> +#define X86_XCR0_HI_ZMM (1ULL <<  7)
>  #define X86_XCR0_PKRU   (1ULL <<  9)
>  #define X86_XCR0_LWP    (1ULL << 62)
>  
> @@ -437,6 +440,9 @@ static void xc_cpuid_config_xsave(xc_interface *xch,
>      if ( test_bit(X86_FEATURE_MPX, info->featureset) )
>          guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR;
>  
> +    if ( test_bit(X86_FEATURE_AVX512F, info->featureset) )
> +        guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM;
> +
>      if ( test_bit(X86_FEATURE_PKU, info->featureset) )
>          guest_xfeature_mask |= X86_XCR0_PKRU;
>
Wei Liu Nov. 4, 2016, 10:57 a.m. UTC | #2
CC x86 maintainers. I will defer this patch to them.

On Fri, Nov 04, 2016 at 04:29:18PM +0800, Luwei Kang wrote:
> Enable get xstate cpuid leaf information regarding avx512 in guest.
> 
> Signed-off-by: Luwei Kang <luwei.kang@intel.com>
> ---
>  tools/libxc/xc_cpuid_x86.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> index de06b32..d761805 100644
> --- a/tools/libxc/xc_cpuid_x86.c
> +++ b/tools/libxc/xc_cpuid_x86.c
> @@ -406,6 +406,9 @@ static void intel_xc_cpuid_policy(xc_interface *xch,
>  #define X86_XCR0_AVX    (1ULL <<  2)
>  #define X86_XCR0_BNDREG (1ULL <<  3)
>  #define X86_XCR0_BNDCSR (1ULL <<  4)
> +#define X86_XCR0_OPMASK (1ULL <<  5)
> +#define X86_XCR0_ZMM    (1ULL <<  6)
> +#define X86_XCR0_HI_ZMM (1ULL <<  7)
>  #define X86_XCR0_PKRU   (1ULL <<  9)
>  #define X86_XCR0_LWP    (1ULL << 62)
>  
> @@ -437,6 +440,9 @@ static void xc_cpuid_config_xsave(xc_interface *xch,
>      if ( test_bit(X86_FEATURE_MPX, info->featureset) )
>          guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR;
>  
> +    if ( test_bit(X86_FEATURE_AVX512F, info->featureset) )
> +        guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM;
> +
>      if ( test_bit(X86_FEATURE_PKU, info->featureset) )
>          guest_xfeature_mask |= X86_XCR0_PKRU;
>  
> -- 
> 2.7.4
>
Wei Liu Nov. 4, 2016, 11 a.m. UTC | #3
On Fri, Nov 04, 2016 at 10:20:24AM +0000, Andrew Cooper wrote:
> On 04/11/16 08:29, Luwei Kang wrote:
> > Enable get xstate cpuid leaf information regarding avx512 in guest.
> >
> > Signed-off-by: Luwei Kang <luwei.kang@intel.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 

Oops, should have read all the entire thread.

I think we can sneak this in for 4.8 if we have some free cycles,
otherwise I will queue it up for -next.

> > ---
> >  tools/libxc/xc_cpuid_x86.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> > index de06b32..d761805 100644
> > --- a/tools/libxc/xc_cpuid_x86.c
> > +++ b/tools/libxc/xc_cpuid_x86.c
> > @@ -406,6 +406,9 @@ static void intel_xc_cpuid_policy(xc_interface *xch,
> >  #define X86_XCR0_AVX    (1ULL <<  2)
> >  #define X86_XCR0_BNDREG (1ULL <<  3)
> >  #define X86_XCR0_BNDCSR (1ULL <<  4)
> > +#define X86_XCR0_OPMASK (1ULL <<  5)
> > +#define X86_XCR0_ZMM    (1ULL <<  6)
> > +#define X86_XCR0_HI_ZMM (1ULL <<  7)
> >  #define X86_XCR0_PKRU   (1ULL <<  9)
> >  #define X86_XCR0_LWP    (1ULL << 62)
> >  
> > @@ -437,6 +440,9 @@ static void xc_cpuid_config_xsave(xc_interface *xch,
> >      if ( test_bit(X86_FEATURE_MPX, info->featureset) )
> >          guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR;
> >  
> > +    if ( test_bit(X86_FEATURE_AVX512F, info->featureset) )
> > +        guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM;
> > +
> >      if ( test_bit(X86_FEATURE_PKU, info->featureset) )
> >          guest_xfeature_mask |= X86_XCR0_PKRU;
> >  
>
Konrad Rzeszutek Wilk Nov. 4, 2016, 1:40 p.m. UTC | #4
On Fri, Nov 04, 2016 at 11:00:16AM +0000, Wei Liu wrote:
> On Fri, Nov 04, 2016 at 10:20:24AM +0000, Andrew Cooper wrote:
> > On 04/11/16 08:29, Luwei Kang wrote:
> > > Enable get xstate cpuid leaf information regarding avx512 in guest.
> > >
> > > Signed-off-by: Luwei Kang <luwei.kang@intel.com>
> > 
> > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > 
> 
> Oops, should have read all the entire thread.
> 
> I think we can sneak this in for 4.8 if we have some free cycles,
> otherwise I will queue it up for -next.

It would be good to get it in as it provides some nice performance
benefits for guests.

> 
> > > ---
> > >  tools/libxc/xc_cpuid_x86.c | 6 ++++++
> > >  1 file changed, 6 insertions(+)
> > >
> > > diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
> > > index de06b32..d761805 100644
> > > --- a/tools/libxc/xc_cpuid_x86.c
> > > +++ b/tools/libxc/xc_cpuid_x86.c
> > > @@ -406,6 +406,9 @@ static void intel_xc_cpuid_policy(xc_interface *xch,
> > >  #define X86_XCR0_AVX    (1ULL <<  2)
> > >  #define X86_XCR0_BNDREG (1ULL <<  3)
> > >  #define X86_XCR0_BNDCSR (1ULL <<  4)
> > > +#define X86_XCR0_OPMASK (1ULL <<  5)
> > > +#define X86_XCR0_ZMM    (1ULL <<  6)
> > > +#define X86_XCR0_HI_ZMM (1ULL <<  7)
> > >  #define X86_XCR0_PKRU   (1ULL <<  9)
> > >  #define X86_XCR0_LWP    (1ULL << 62)
> > >  
> > > @@ -437,6 +440,9 @@ static void xc_cpuid_config_xsave(xc_interface *xch,
> > >      if ( test_bit(X86_FEATURE_MPX, info->featureset) )
> > >          guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR;
> > >  
> > > +    if ( test_bit(X86_FEATURE_AVX512F, info->featureset) )
> > > +        guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM;
> > > +
> > >      if ( test_bit(X86_FEATURE_PKU, info->featureset) )
> > >          guest_xfeature_mask |= X86_XCR0_PKRU;
> > >  
> > 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> https://lists.xen.org/xen-devel
Wei Liu Nov. 4, 2016, 2:24 p.m. UTC | #5
On Fri, Nov 04, 2016 at 09:40:20AM -0400, Konrad Rzeszutek Wilk wrote:
> On Fri, Nov 04, 2016 at 11:00:16AM +0000, Wei Liu wrote:
> > On Fri, Nov 04, 2016 at 10:20:24AM +0000, Andrew Cooper wrote:
> > > On 04/11/16 08:29, Luwei Kang wrote:
> > > > Enable get xstate cpuid leaf information regarding avx512 in guest.
> > > >
> > > > Signed-off-by: Luwei Kang <luwei.kang@intel.com>
> > > 
> > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > 
> > 
> > Oops, should have read all the entire thread.
> > 
> > I think we can sneak this in for 4.8 if we have some free cycles,
> > otherwise I will queue it up for -next.
> 
> It would be good to get it in as it provides some nice performance
> benefits for guests.
> 

Given that the queue is empty at the moment, I've pushed this patch.
diff mbox

Patch

diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c
index de06b32..d761805 100644
--- a/tools/libxc/xc_cpuid_x86.c
+++ b/tools/libxc/xc_cpuid_x86.c
@@ -406,6 +406,9 @@  static void intel_xc_cpuid_policy(xc_interface *xch,
 #define X86_XCR0_AVX    (1ULL <<  2)
 #define X86_XCR0_BNDREG (1ULL <<  3)
 #define X86_XCR0_BNDCSR (1ULL <<  4)
+#define X86_XCR0_OPMASK (1ULL <<  5)
+#define X86_XCR0_ZMM    (1ULL <<  6)
+#define X86_XCR0_HI_ZMM (1ULL <<  7)
 #define X86_XCR0_PKRU   (1ULL <<  9)
 #define X86_XCR0_LWP    (1ULL << 62)
 
@@ -437,6 +440,9 @@  static void xc_cpuid_config_xsave(xc_interface *xch,
     if ( test_bit(X86_FEATURE_MPX, info->featureset) )
         guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR;
 
+    if ( test_bit(X86_FEATURE_AVX512F, info->featureset) )
+        guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM;
+
     if ( test_bit(X86_FEATURE_PKU, info->featureset) )
         guest_xfeature_mask |= X86_XCR0_PKRU;