x86: Use CHECK_FEATURE_PRESENT to check HLE [BZ #27398]

Message ID 20220126205119.2000487-1-hjl.tools@gmail.com
State Committed
Commit 501246c5e2dfcc278f0ebbdb72345cdd239521c7
Headers
Series x86: Use CHECK_FEATURE_PRESENT to check HLE [BZ #27398] |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

H.J. Lu Jan. 26, 2022, 8:51 p.m. UTC
  HLE is disabled on blacklisted CPUs.  Use CHECK_FEATURE_PRESENT, instead
of CHECK_FEATURE_ACTIVE, to check HLE.
---
 sysdeps/x86/tst-cpu-features-supports.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Carlos O'Donell Jan. 27, 2022, 4:54 a.m. UTC | #1
On 1/26/22 15:51, H.J. Lu wrote:
> HLE is disabled on blacklisted CPUs.  Use CHECK_FEATURE_PRESENT, instead
> of CHECK_FEATURE_ACTIVE, to check HLE.

OK for glibc 2.35. Fixes the issue on my T590 with the resume issues.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>

> ---
>  sysdeps/x86/tst-cpu-features-supports.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c
> index 46b2c7bf83..9f10f02954 100644
> --- a/sysdeps/x86/tst-cpu-features-supports.c
> +++ b/sysdeps/x86/tst-cpu-features-supports.c
> @@ -130,7 +130,7 @@ do_test (int argc, char **argv)
>    fails += CHECK_FEATURE_ACTIVE (gfni, GFNI);
>  #endif
>  #if __GNUC_PREREQ (11, 0)
> -  fails += CHECK_FEATURE_ACTIVE (hle, HLE);
> +  fails += CHECK_FEATURE_PRESENT (hle, HLE);
>    fails += CHECK_FEATURE_PRESENT (ibt, IBT);
>    fails += CHECK_FEATURE_ACTIVE (lahf_lm, LAHF64_SAHF64);
>    fails += CHECK_FEATURE_PRESENT (lm, LM);
  
H.J. Lu Feb. 1, 2022, 1:43 p.m. UTC | #2
On Wed, Jan 26, 2022 at 8:54 PM Carlos O'Donell <carlos@redhat.com> wrote:
>
> On 1/26/22 15:51, H.J. Lu wrote:
> > HLE is disabled on blacklisted CPUs.  Use CHECK_FEATURE_PRESENT, instead
> > of CHECK_FEATURE_ACTIVE, to check HLE.
>
> OK for glibc 2.35. Fixes the issue on my T590 with the resume issues.
>
> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> Tested-by: Carlos O'Donell <carlos@redhat.com>
>
> > ---
> >  sysdeps/x86/tst-cpu-features-supports.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c
> > index 46b2c7bf83..9f10f02954 100644
> > --- a/sysdeps/x86/tst-cpu-features-supports.c
> > +++ b/sysdeps/x86/tst-cpu-features-supports.c
> > @@ -130,7 +130,7 @@ do_test (int argc, char **argv)
> >    fails += CHECK_FEATURE_ACTIVE (gfni, GFNI);
> >  #endif
> >  #if __GNUC_PREREQ (11, 0)
> > -  fails += CHECK_FEATURE_ACTIVE (hle, HLE);
> > +  fails += CHECK_FEATURE_PRESENT (hle, HLE);
> >    fails += CHECK_FEATURE_PRESENT (ibt, IBT);
> >    fails += CHECK_FEATURE_ACTIVE (lahf_lm, LAHF64_SAHF64);
> >    fails += CHECK_FEATURE_PRESENT (lm, LM);
>
>
> --
> Cheers,
> Carlos.
>

I am backporting this to release branches.
  

Patch

diff --git a/sysdeps/x86/tst-cpu-features-supports.c b/sysdeps/x86/tst-cpu-features-supports.c
index 46b2c7bf83..9f10f02954 100644
--- a/sysdeps/x86/tst-cpu-features-supports.c
+++ b/sysdeps/x86/tst-cpu-features-supports.c
@@ -130,7 +130,7 @@  do_test (int argc, char **argv)
   fails += CHECK_FEATURE_ACTIVE (gfni, GFNI);
 #endif
 #if __GNUC_PREREQ (11, 0)
-  fails += CHECK_FEATURE_ACTIVE (hle, HLE);
+  fails += CHECK_FEATURE_PRESENT (hle, HLE);
   fails += CHECK_FEATURE_PRESENT (ibt, IBT);
   fails += CHECK_FEATURE_ACTIVE (lahf_lm, LAHF64_SAHF64);
   fails += CHECK_FEATURE_PRESENT (lm, LM);