unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] x86: Properly match CPU feature [BZ #27222]
@ 2021-01-21 19:47 H.J. Lu via Libc-alpha
  2021-01-22 15:01 ` H.J. Lu via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: H.J. Lu via Libc-alpha @ 2021-01-21 19:47 UTC (permalink / raw)
  To: libc-alpha

/proc/cpuinfo has

flags		: fpu vme de pse ... ssse3 ...

SSE3 in /proc/cpuinfo is displaced as "pni".  Search "pni" instead of
"sse3" for SSE3.  After finding a match for a string, verify the previous
character is space and the next character is space or null byte to avoid
matching "XXXYYYXXX" with "YYY".
---
 sysdeps/x86/tst-cpu-features-cpuinfo.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
index 771771c959..9308349869 100644
--- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
+++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
@@ -64,7 +64,12 @@ check_proc (const char *proc_name, int flag, int usable, const char *name)
       return 0;
     }
   printf ("  %s: %d\n", name, flag);
-  if (strstr (cpu_flags, proc_name) != NULL)
+  char *str = strstr (cpu_flags, proc_name);
+  size_t len = strlen (proc_name);
+  /* Don't match "ssse3" with "sse3".  */
+  if (str != NULL
+      && str[-1] == ' '
+      && (str[len] == ' ' || str[len] == '\0'))
     found = 1;
   printf ("  cpuinfo (%s): %d\n", proc_name, found);
 
@@ -206,7 +211,7 @@ do_test (int argc, char **argv)
   fails += CHECK_PROC (ssbd, SSBD);
   fails += CHECK_PROC (sse, SSE);
   fails += CHECK_PROC (sse2, SSE2);
-  fails += CHECK_PROC (sse3, SSE3);
+  fails += CHECK_PROC (pni, SSE3);
   fails += CHECK_PROC (sse4_1, SSE4_1);
   fails += CHECK_PROC (sse4_2, SSE4_2);
   fails += CHECK_PROC (sse4a, SSE4A);
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86: Properly match CPU feature [BZ #27222]
  2021-01-21 19:47 [PATCH] x86: Properly match CPU feature [BZ #27222] H.J. Lu via Libc-alpha
@ 2021-01-22 15:01 ` H.J. Lu via Libc-alpha
  2021-01-22 16:56   ` Adhemerval Zanella via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: H.J. Lu via Libc-alpha @ 2021-01-22 15:01 UTC (permalink / raw)
  To: GNU C Library

On Thu, Jan 21, 2021 at 11:47 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> /proc/cpuinfo has
>
> flags           : fpu vme de pse ... ssse3 ...
>
> SSE3 in /proc/cpuinfo is displaced as "pni".  Search "pni" instead of
> "sse3" for SSE3.  After finding a match for a string, verify the previous
> character is space and the next character is space or null byte to avoid
> matching "XXXYYYXXX" with "YYY".
> ---
>  sysdeps/x86/tst-cpu-features-cpuinfo.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
> index 771771c959..9308349869 100644
> --- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
> +++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
> @@ -64,7 +64,12 @@ check_proc (const char *proc_name, int flag, int usable, const char *name)
>        return 0;
>      }
>    printf ("  %s: %d\n", name, flag);
> -  if (strstr (cpu_flags, proc_name) != NULL)
> +  char *str = strstr (cpu_flags, proc_name);
> +  size_t len = strlen (proc_name);
> +  /* Don't match "ssse3" with "sse3".  */
> +  if (str != NULL
> +      && str[-1] == ' '
> +      && (str[len] == ' ' || str[len] == '\0'))
>      found = 1;
>    printf ("  cpuinfo (%s): %d\n", proc_name, found);
>
> @@ -206,7 +211,7 @@ do_test (int argc, char **argv)
>    fails += CHECK_PROC (ssbd, SSBD);
>    fails += CHECK_PROC (sse, SSE);
>    fails += CHECK_PROC (sse2, SSE2);
> -  fails += CHECK_PROC (sse3, SSE3);
> +  fails += CHECK_PROC (pni, SSE3);
>    fails += CHECK_PROC (sse4_1, SSE4_1);
>    fails += CHECK_PROC (sse4_2, SSE4_2);
>    fails += CHECK_PROC (sse4a, SSE4A);
> --
> 2.29.2
>

I am checking it in.

-- 
H.J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86: Properly match CPU feature [BZ #27222]
  2021-01-22 15:01 ` H.J. Lu via Libc-alpha
@ 2021-01-22 16:56   ` Adhemerval Zanella via Libc-alpha
  2021-01-22 18:11     ` H.J. Lu via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: Adhemerval Zanella via Libc-alpha @ 2021-01-22 16:56 UTC (permalink / raw)
  To: libc-alpha



On 22/01/2021 12:01, H.J. Lu via Libc-alpha wrote:
> On Thu, Jan 21, 2021 at 11:47 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>>
>> /proc/cpuinfo has
>>
>> flags           : fpu vme de pse ... ssse3 ...
>>
>> SSE3 in /proc/cpuinfo is displaced as "pni".  Search "pni" instead of
>> "sse3" for SSE3.  After finding a match for a string, verify the previous
>> character is space and the next character is space or null byte to avoid
>> matching "XXXYYYXXX" with "YYY".
>> ---
>>  sysdeps/x86/tst-cpu-features-cpuinfo.c | 9 +++++++--
>>  1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
>> index 771771c959..9308349869 100644
>> --- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
>> +++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
>> @@ -64,7 +64,12 @@ check_proc (const char *proc_name, int flag, int usable, const char *name)
>>        return 0;
>>      }
>>    printf ("  %s: %d\n", name, flag);
>> -  if (strstr (cpu_flags, proc_name) != NULL)
>> +  char *str = strstr (cpu_flags, proc_name);
>> +  size_t len = strlen (proc_name);
>> +  /* Don't match "ssse3" with "sse3".  */
>> +  if (str != NULL
>> +      && str[-1] == ' '
>> +      && (str[len] == ' ' || str[len] == '\0'))
>>      found = 1;
>>    printf ("  cpuinfo (%s): %d\n", proc_name, found);
>>
>> @@ -206,7 +211,7 @@ do_test (int argc, char **argv)
>>    fails += CHECK_PROC (ssbd, SSBD);
>>    fails += CHECK_PROC (sse, SSE);
>>    fails += CHECK_PROC (sse2, SSE2);
>> -  fails += CHECK_PROC (sse3, SSE3);
>> +  fails += CHECK_PROC (pni, SSE3);
>>    fails += CHECK_PROC (sse4_1, SSE4_1);
>>    fails += CHECK_PROC (sse4_2, SSE4_2);
>>    fails += CHECK_PROC (sse4a, SSE4A);
>> --
>> 2.29.2
>>
> 
> I am checking it in.
> 

Ok for 2.33.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86: Properly match CPU feature [BZ #27222]
  2021-01-22 16:56   ` Adhemerval Zanella via Libc-alpha
@ 2021-01-22 18:11     ` H.J. Lu via Libc-alpha
  2021-02-02 11:07       ` Andreas Schwab
  0 siblings, 1 reply; 8+ messages in thread
From: H.J. Lu via Libc-alpha @ 2021-01-22 18:11 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: GNU C Library

[-- Attachment #1: Type: text/plain, Size: 2047 bytes --]

On Fri, Jan 22, 2021 at 8:56 AM Adhemerval Zanella via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
>
>
> On 22/01/2021 12:01, H.J. Lu via Libc-alpha wrote:
> > On Thu, Jan 21, 2021 at 11:47 AM H.J. Lu <hjl.tools@gmail.com> wrote:
> >>
> >> /proc/cpuinfo has
> >>
> >> flags           : fpu vme de pse ... ssse3 ...
> >>
> >> SSE3 in /proc/cpuinfo is displaced as "pni".  Search "pni" instead of
> >> "sse3" for SSE3.  After finding a match for a string, verify the previous
> >> character is space and the next character is space or null byte to avoid
> >> matching "XXXYYYXXX" with "YYY".
> >> ---
> >>  sysdeps/x86/tst-cpu-features-cpuinfo.c | 9 +++++++--
> >>  1 file changed, 7 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
> >> index 771771c959..9308349869 100644
> >> --- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
> >> +++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
> >> @@ -64,7 +64,12 @@ check_proc (const char *proc_name, int flag, int usable, const char *name)
> >>        return 0;
> >>      }
> >>    printf ("  %s: %d\n", name, flag);
> >> -  if (strstr (cpu_flags, proc_name) != NULL)
> >> +  char *str = strstr (cpu_flags, proc_name);
> >> +  size_t len = strlen (proc_name);
> >> +  /* Don't match "ssse3" with "sse3".  */
> >> +  if (str != NULL
> >> +      && str[-1] == ' '
> >> +      && (str[len] == ' ' || str[len] == '\0'))
> >>      found = 1;
> >>    printf ("  cpuinfo (%s): %d\n", proc_name, found);
> >>
> >> @@ -206,7 +211,7 @@ do_test (int argc, char **argv)
> >>    fails += CHECK_PROC (ssbd, SSBD);
> >>    fails += CHECK_PROC (sse, SSE);
> >>    fails += CHECK_PROC (sse2, SSE2);
> >> -  fails += CHECK_PROC (sse3, SSE3);
> >> +  fails += CHECK_PROC (pni, SSE3);
> >>    fails += CHECK_PROC (sse4_1, SSE4_1);
> >>    fails += CHECK_PROC (sse4_2, SSE4_2);
> >>    fails += CHECK_PROC (sse4a, SSE4A);
> >> --
> >> 2.29.2
> >>
> >
> > I am checking it in.
> >
>
> Ok for 2.33.

I am checking in this different variant.

-- 
H.J.

[-- Attachment #2: 0001-x86-Properly-match-CPU-features-in-proc-cpuinfo-BZ-2.patch --]
[-- Type: text/x-patch, Size: 4140 bytes --]

From 27932428e116d9ca9d949305d880c9218479afa0 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 21 Jan 2021 11:12:30 -0800
Subject: [PATCH] x86: Properly match CPU features in /proc/cpuinfo [BZ #27222]

Search " YYY " and " YYY\n", instead of "YYY", to avoid matching
"XXXYYYZZZ" with "YYY".

Update /proc/cpuinfo CPU feature names:

/proc/cpuinfo                     glibc
------------------------------------------------
avx512vbmi                        AVX512_VBMI
dts                               DS
pni                               SSE3
tsc_deadline_timer                TSC_DEADLINE
---
 sysdeps/x86/tst-cpu-features-cpuinfo.c | 43 ++++++++++++++++++--------
 1 file changed, 30 insertions(+), 13 deletions(-)

diff --git a/sysdeps/x86/tst-cpu-features-cpuinfo.c b/sysdeps/x86/tst-cpu-features-cpuinfo.c
index 771771c959..f38a0f6af6 100644
--- a/sysdeps/x86/tst-cpu-features-cpuinfo.c
+++ b/sysdeps/x86/tst-cpu-features-cpuinfo.c
@@ -53,30 +53,47 @@ get_cpuinfo (void)
 }
 
 int
-check_proc (const char *proc_name, int flag, int usable, const char *name)
+check_proc (const char *proc_name, const char *search_name, int flag,
+	    int usable, const char *name)
 {
   int found = 0;
 
   printf ("Checking %s:\n", name);
-  if (!usable)
+  printf ("  %s: %d\n", name, flag);
+  char *str = strstr (cpu_flags, search_name);
+  if (str == NULL)
     {
-      printf ("  %s: insufficient usable info, skipped\n", name);
-      return 0;
+      /* If searching for " XXX " failed, try " XXX\n".  */
+      size_t len = strlen (search_name);
+      char buffer[80];
+      if (len >= sizeof buffer)
+	abort ();
+      memcpy (buffer, search_name, len + 1);
+      buffer[len - 1] = '\n';
+      str = strstr (cpu_flags, buffer);
     }
-  printf ("  %s: %d\n", name, flag);
-  if (strstr (cpu_flags, proc_name) != NULL)
+  if (str != NULL)
     found = 1;
   printf ("  cpuinfo (%s): %d\n", proc_name, found);
 
   if (found != flag)
-    printf (" *** failure ***\n");
+    {
+      if (found || usable)
+	printf (" *** failure ***\n");
+      else
+	{
+	  printf (" *** missing in /proc/cpuinfo ***\n");
+	  return 0;
+	}
+    }
 
   return (found != flag);
 }
 
 #define CHECK_PROC(str, name) \
-  check_proc (#str, HAS_CPU_FEATURE (name), CPU_FEATURE_USABLE (name), \
-	      "HAS_CPU_FEATURE (" #name ")");
+  check_proc (#str, " "#str" ", HAS_CPU_FEATURE (name), \
+	      CPU_FEATURE_USABLE (name), \
+	      "CPU_FEATURE_USABLE (" #name ")")
 
 static int
 do_test (int argc, char **argv)
@@ -99,7 +116,7 @@ do_test (int argc, char **argv)
   fails += CHECK_PROC (avx512_bf16, AVX512_BF16);
   fails += CHECK_PROC (avx512_bitalg, AVX512_BITALG);
   fails += CHECK_PROC (avx512ifma, AVX512_IFMA);
-  fails += CHECK_PROC (avx512_vbmi, AVX512_VBMI);
+  fails += CHECK_PROC (avx512vbmi, AVX512_VBMI);
   fails += CHECK_PROC (avx512_vbmi2, AVX512_VBMI2);
   fails += CHECK_PROC (avx512_vnni, AVX512_VNNI);
   fails += CHECK_PROC (avx512_vp2intersect, AVX512_VP2INTERSECT);
@@ -125,7 +142,7 @@ do_test (int argc, char **argv)
   fails += CHECK_PROC (dca, DCA);
   fails += CHECK_PROC (de, DE);
   fails += CHECK_PROC (zero_fcs_fds, DEPR_FPU_CS_DS);
-  fails += CHECK_PROC (ds, DS);
+  fails += CHECK_PROC (dts, DS);
   fails += CHECK_PROC (ds_cpl, DS_CPL);
   fails += CHECK_PROC (dtes64, DTES64);
   fails += CHECK_PROC (est, EIST);
@@ -206,7 +223,7 @@ do_test (int argc, char **argv)
   fails += CHECK_PROC (ssbd, SSBD);
   fails += CHECK_PROC (sse, SSE);
   fails += CHECK_PROC (sse2, SSE2);
-  fails += CHECK_PROC (sse3, SSE3);
+  fails += CHECK_PROC (pni, SSE3);
   fails += CHECK_PROC (sse4_1, SSE4_1);
   fails += CHECK_PROC (sse4_2, SSE4_2);
   fails += CHECK_PROC (sse4a, SSE4A);
@@ -223,7 +240,7 @@ do_test (int argc, char **argv)
   fails += CHECK_PROC (intel_pt, TRACE);
   fails += CHECK_PROC (tsc, TSC);
   fails += CHECK_PROC (tsc_adjust, TSC_ADJUST);
-  fails += CHECK_PROC (tsc_deadline, TSC_DEADLINE);
+  fails += CHECK_PROC (tsc_deadline_timer, TSC_DEADLINE);
   fails += CHECK_PROC (tsxldtrk, TSXLDTRK);
   fails += CHECK_PROC (umip, UMIP);
   fails += CHECK_PROC (vaes, VAES);
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] x86: Properly match CPU feature [BZ #27222]
  2021-01-22 18:11     ` H.J. Lu via Libc-alpha
@ 2021-02-02 11:07       ` Andreas Schwab
  2021-02-02 15:01         ` [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM H.J. Lu via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: Andreas Schwab @ 2021-02-02 11:07 UTC (permalink / raw)
  To: H.J. Lu via Libc-alpha

------ FAIL: elf/tst-cpu-features-cpuinfo ------
Checking HAS_CPU_FEATURE (ACPI):
  HAS_CPU_FEATURE (ACPI): 0
  cpuinfo (acpi): 0
Checking HAS_CPU_FEATURE (ADX):
  HAS_CPU_FEATURE (ADX): 0
  cpuinfo (adx): 0
Checking HAS_CPU_FEATURE (APIC):
  HAS_CPU_FEATURE (APIC): 1
  cpuinfo (apic): 1
Checking HAS_CPU_FEATURE (AES):
  HAS_CPU_FEATURE (AES): 1
  cpuinfo (aes): 1
Checking HAS_CPU_FEATURE (AMX_BF16):
  HAS_CPU_FEATURE (AMX_BF16): 0
  cpuinfo (amx_bf16): 0
Checking HAS_CPU_FEATURE (AMX_INT8):
  HAS_CPU_FEATURE (AMX_INT8): 0
  cpuinfo (amx_int8): 0
Checking HAS_CPU_FEATURE (AMX_TILE):
  HAS_CPU_FEATURE (AMX_TILE): 0
  cpuinfo (amx_tile): 0
Checking HAS_CPU_FEATURE (ARCH_CAPABILITIES):
  HAS_CPU_FEATURE (ARCH_CAPABILITIES): 1
  cpuinfo (arch_capabilities): 1
Checking HAS_CPU_FEATURE (AVX):
  HAS_CPU_FEATURE (AVX): 1
  cpuinfo (avx): 1
Checking HAS_CPU_FEATURE (AVX2):
  HAS_CPU_FEATURE (AVX2): 0
  cpuinfo (avx2): 0
Checking HAS_CPU_FEATURE (AVX512_4FMAPS):
  HAS_CPU_FEATURE (AVX512_4FMAPS): 0
  cpuinfo (avx512_4fmaps): 0
Checking HAS_CPU_FEATURE (AVX512_4VNNIW):
  HAS_CPU_FEATURE (AVX512_4VNNIW): 0
  cpuinfo (avx512_4vnniw): 0
Checking HAS_CPU_FEATURE (AVX512_BF16):
  HAS_CPU_FEATURE (AVX512_BF16): 0
  cpuinfo (avx512_bf16): 0
Checking HAS_CPU_FEATURE (AVX512_BITALG):
  HAS_CPU_FEATURE (AVX512_BITALG): 0
  cpuinfo (avx512_bitalg): 0
Checking HAS_CPU_FEATURE (AVX512_IFMA):
  HAS_CPU_FEATURE (AVX512_IFMA): 0
  cpuinfo (avx512ifma): 0
Checking HAS_CPU_FEATURE (AVX512_VBMI):
  HAS_CPU_FEATURE (AVX512_VBMI): 0
  cpuinfo (avx512vbmi): 0
Checking HAS_CPU_FEATURE (AVX512_VBMI2):
  HAS_CPU_FEATURE (AVX512_VBMI2): 0
  cpuinfo (avx512_vbmi2): 0
Checking HAS_CPU_FEATURE (AVX512_VNNI):
  HAS_CPU_FEATURE (AVX512_VNNI): 0
  cpuinfo (avx512_vnni): 0
Checking HAS_CPU_FEATURE (AVX512_VP2INTERSECT):
  HAS_CPU_FEATURE (AVX512_VP2INTERSECT): 0
  cpuinfo (avx512_vp2intersect): 0
Checking HAS_CPU_FEATURE (AVX512_VPOPCNTDQ):
  HAS_CPU_FEATURE (AVX512_VPOPCNTDQ): 0
  cpuinfo (avx512_vpopcntdq): 0
Checking HAS_CPU_FEATURE (AVX512BW):
  HAS_CPU_FEATURE (AVX512BW): 0
  cpuinfo (avx512bw): 0
Checking HAS_CPU_FEATURE (AVX512CD):
  HAS_CPU_FEATURE (AVX512CD): 0
  cpuinfo (avx512cd): 0
Checking HAS_CPU_FEATURE (AVX512ER):
  HAS_CPU_FEATURE (AVX512ER): 0
  cpuinfo (avx512er): 0
Checking HAS_CPU_FEATURE (AVX512DQ):
  HAS_CPU_FEATURE (AVX512DQ): 0
  cpuinfo (avx512dq): 0
Checking HAS_CPU_FEATURE (AVX512F):
  HAS_CPU_FEATURE (AVX512F): 0
  cpuinfo (avx512f): 0
Checking HAS_CPU_FEATURE (AVX512PF):
  HAS_CPU_FEATURE (AVX512PF): 0
  cpuinfo (avx512pf): 0
Checking HAS_CPU_FEATURE (AVX512VL):
  HAS_CPU_FEATURE (AVX512VL): 0
  cpuinfo (avx512vl): 0
Checking HAS_CPU_FEATURE (BMI1):
  HAS_CPU_FEATURE (BMI1): 1
  cpuinfo (bmi1): 1
Checking HAS_CPU_FEATURE (BMI2):
  HAS_CPU_FEATURE (BMI2): 0
  cpuinfo (bmi2): 0
Checking HAS_CPU_FEATURE (CLDEMOTE):
  HAS_CPU_FEATURE (CLDEMOTE): 0
  cpuinfo (cldemote): 0
Checking HAS_CPU_FEATURE (CLFLUSHOPT):
  HAS_CPU_FEATURE (CLFLUSHOPT): 0
  cpuinfo (clflushopt): 0
Checking HAS_CPU_FEATURE (CLFSH):
  HAS_CPU_FEATURE (CLFSH): 1
  cpuinfo (clflush): 1
Checking HAS_CPU_FEATURE (CLWB):
  HAS_CPU_FEATURE (CLWB): 0
  cpuinfo (clwb): 0
Checking HAS_CPU_FEATURE (CMOV):
  HAS_CPU_FEATURE (CMOV): 1
  cpuinfo (cmov): 1
Checking HAS_CPU_FEATURE (CMPXCHG16B):
  HAS_CPU_FEATURE (CMPXCHG16B): 1
  cpuinfo (cx16): 1
Checking HAS_CPU_FEATURE (CNXT_ID):
  HAS_CPU_FEATURE (CNXT_ID): 0
  cpuinfo (cnxt_id): 0
Checking HAS_CPU_FEATURE (CORE_CAPABILITIES):
  HAS_CPU_FEATURE (CORE_CAPABILITIES): 0
  cpuinfo (core_capabilities): 0
Checking HAS_CPU_FEATURE (CX8):
  HAS_CPU_FEATURE (CX8): 1
  cpuinfo (cx8): 1
Checking HAS_CPU_FEATURE (DCA):
  HAS_CPU_FEATURE (DCA): 0
  cpuinfo (dca): 0
Checking HAS_CPU_FEATURE (DE):
  HAS_CPU_FEATURE (DE): 1
  cpuinfo (de): 1
Checking HAS_CPU_FEATURE (DEPR_FPU_CS_DS):
  HAS_CPU_FEATURE (DEPR_FPU_CS_DS): 0
  cpuinfo (zero_fcs_fds): 0
Checking HAS_CPU_FEATURE (DS):
  HAS_CPU_FEATURE (DS): 0
  cpuinfo (dts): 0
Checking HAS_CPU_FEATURE (DS_CPL):
  HAS_CPU_FEATURE (DS_CPL): 0
  cpuinfo (ds_cpl): 0
Checking HAS_CPU_FEATURE (DTES64):
  HAS_CPU_FEATURE (DTES64): 0
  cpuinfo (dtes64): 0
Checking HAS_CPU_FEATURE (EIST):
  HAS_CPU_FEATURE (EIST): 0
  cpuinfo (est): 0
Checking HAS_CPU_FEATURE (ENQCMD):
  HAS_CPU_FEATURE (ENQCMD): 0
  cpuinfo (enqcmd): 0
Checking HAS_CPU_FEATURE (ERMS):
  HAS_CPU_FEATURE (ERMS): 0
  cpuinfo (erms): 0
Checking HAS_CPU_FEATURE (F16C):
  HAS_CPU_FEATURE (F16C): 1
  cpuinfo (f16c): 1
Checking HAS_CPU_FEATURE (FMA):
  HAS_CPU_FEATURE (FMA): 1
  cpuinfo (fma): 1
Checking HAS_CPU_FEATURE (FMA4):
  HAS_CPU_FEATURE (FMA4): 1
  cpuinfo (fma4): 1
Checking HAS_CPU_FEATURE (FPU):
  HAS_CPU_FEATURE (FPU): 1
  cpuinfo (fpu): 1
Checking HAS_CPU_FEATURE (FSGSBASE):
  HAS_CPU_FEATURE (FSGSBASE): 0
  cpuinfo (fsgsbase): 0
Checking HAS_CPU_FEATURE (FSRM):
  HAS_CPU_FEATURE (FSRM): 0
  cpuinfo (fsrm): 0
Checking HAS_CPU_FEATURE (FXSR):
  HAS_CPU_FEATURE (FXSR): 1
  cpuinfo (fxsr): 1
Checking HAS_CPU_FEATURE (GFNI):
  HAS_CPU_FEATURE (GFNI): 0
  cpuinfo (gfni): 0
Checking HAS_CPU_FEATURE (HLE):
  HAS_CPU_FEATURE (HLE): 0
  cpuinfo (hle): 0
Checking HAS_CPU_FEATURE (HTT):
  HAS_CPU_FEATURE (HTT): 0
  cpuinfo (ht): 0
Checking HAS_CPU_FEATURE (HYBRID):
  HAS_CPU_FEATURE (HYBRID): 0
  cpuinfo (hybrid): 0
Checking HAS_CPU_FEATURE (IBRS_IBPB):
  HAS_CPU_FEATURE (IBRS_IBPB): 0
  cpuinfo (ibrs): 0
Checking HAS_CPU_FEATURE (IBT):
  HAS_CPU_FEATURE (IBT): 0
  cpuinfo (ibt): 0
Checking HAS_CPU_FEATURE (INVARIANT_TSC):
  HAS_CPU_FEATURE (INVARIANT_TSC): 0
  cpuinfo (invariant_tsc): 0
Checking HAS_CPU_FEATURE (INVPCID):
  HAS_CPU_FEATURE (INVPCID): 0
  cpuinfo (invpcid): 0
Checking HAS_CPU_FEATURE (L1D_FLUSH):
  HAS_CPU_FEATURE (L1D_FLUSH): 0
  cpuinfo (flush_l1d): 0
Checking HAS_CPU_FEATURE (LAHF64_SAHF64):
  HAS_CPU_FEATURE (LAHF64_SAHF64): 1
  cpuinfo (lahf_lm): 1
Checking HAS_CPU_FEATURE (LM):
  HAS_CPU_FEATURE (LM): 1
  cpuinfo (lm): 1
Checking HAS_CPU_FEATURE (LWP):
  HAS_CPU_FEATURE (LWP): 0
  cpuinfo (lwp): 0
Checking HAS_CPU_FEATURE (LZCNT):
  HAS_CPU_FEATURE (LZCNT): 1
  cpuinfo (abm): 1
Checking HAS_CPU_FEATURE (MCA):
  HAS_CPU_FEATURE (MCA): 1
  cpuinfo (mca): 1
Checking HAS_CPU_FEATURE (MCE):
  HAS_CPU_FEATURE (MCE): 1
  cpuinfo (mce): 1
Checking HAS_CPU_FEATURE (MD_CLEAR):
  HAS_CPU_FEATURE (MD_CLEAR): 0
  cpuinfo (md_clear): 0
Checking HAS_CPU_FEATURE (MMX):
  HAS_CPU_FEATURE (MMX): 1
  cpuinfo (mmx): 1
Checking HAS_CPU_FEATURE (MONITOR):
  HAS_CPU_FEATURE (MONITOR): 0
  cpuinfo (monitor): 0
Checking HAS_CPU_FEATURE (MOVBE):
  HAS_CPU_FEATURE (MOVBE): 0
  cpuinfo (movbe): 0
Checking HAS_CPU_FEATURE (MOVDIRI):
  HAS_CPU_FEATURE (MOVDIRI): 0
  cpuinfo (movdiri): 0
Checking HAS_CPU_FEATURE (MOVDIR64B):
  HAS_CPU_FEATURE (MOVDIR64B): 0
  cpuinfo (movdir64b): 0
Checking HAS_CPU_FEATURE (MPX):
  HAS_CPU_FEATURE (MPX): 0
  cpuinfo (mpx): 0
Checking HAS_CPU_FEATURE (MSR):
  HAS_CPU_FEATURE (MSR): 1
  cpuinfo (msr): 1
Checking HAS_CPU_FEATURE (MTRR):
  HAS_CPU_FEATURE (MTRR): 1
  cpuinfo (mtrr): 1
Checking HAS_CPU_FEATURE (NX):
  HAS_CPU_FEATURE (NX): 1
  cpuinfo (nx): 1
Checking HAS_CPU_FEATURE (OSPKE):
  HAS_CPU_FEATURE (OSPKE): 0
  cpuinfo (ospke): 0
Checking HAS_CPU_FEATURE (PAE):
  HAS_CPU_FEATURE (PAE): 1
  cpuinfo (pae): 1
Checking HAS_CPU_FEATURE (PAGE1GB):
  HAS_CPU_FEATURE (PAGE1GB): 1
  cpuinfo (pdpe1gb): 1
Checking HAS_CPU_FEATURE (PAT):
  HAS_CPU_FEATURE (PAT): 1
  cpuinfo (pat): 1
Checking HAS_CPU_FEATURE (PBE):
  HAS_CPU_FEATURE (PBE): 0
  cpuinfo (pbe): 0
Checking HAS_CPU_FEATURE (PCID):
  HAS_CPU_FEATURE (PCID): 0
  cpuinfo (pcid): 0
Checking HAS_CPU_FEATURE (PCLMULQDQ):
  HAS_CPU_FEATURE (PCLMULQDQ): 1
  cpuinfo (pclmulqdq): 1
Checking HAS_CPU_FEATURE (PCONFIG):
  HAS_CPU_FEATURE (PCONFIG): 0
  cpuinfo (pconfig): 0
Checking HAS_CPU_FEATURE (PDCM):
  HAS_CPU_FEATURE (PDCM): 0
  cpuinfo (pdcm): 0
Checking HAS_CPU_FEATURE (PGE):
  HAS_CPU_FEATURE (PGE): 1
  cpuinfo (pge): 1
Checking HAS_CPU_FEATURE (PKS):
  HAS_CPU_FEATURE (PKS): 0
  cpuinfo (pks): 0
Checking HAS_CPU_FEATURE (PKU):
  HAS_CPU_FEATURE (PKU): 0
  cpuinfo (pku): 0
Checking HAS_CPU_FEATURE (POPCNT):
  HAS_CPU_FEATURE (POPCNT): 1
  cpuinfo (popcnt): 1
Checking HAS_CPU_FEATURE (PREFETCHW):
  HAS_CPU_FEATURE (PREFETCHW): 1
  cpuinfo (3dnowprefetch): 1
Checking HAS_CPU_FEATURE (PREFETCHWT1):
  HAS_CPU_FEATURE (PREFETCHWT1): 0
  cpuinfo (prefetchwt1): 0
Checking HAS_CPU_FEATURE (PSE):
  HAS_CPU_FEATURE (PSE): 1
  cpuinfo (pse): 1
Checking HAS_CPU_FEATURE (PSE_36):
  HAS_CPU_FEATURE (PSE_36): 1
  cpuinfo (pse36): 1
Checking HAS_CPU_FEATURE (PSN):
  HAS_CPU_FEATURE (PSN): 0
  cpuinfo (psn): 0
Checking HAS_CPU_FEATURE (RDPID):
  HAS_CPU_FEATURE (RDPID): 0
  cpuinfo (rdpid): 0
Checking HAS_CPU_FEATURE (RDRAND):
  HAS_CPU_FEATURE (RDRAND): 0
  cpuinfo (rdrand): 0
Checking HAS_CPU_FEATURE (RDSEED):
  HAS_CPU_FEATURE (RDSEED): 0
  cpuinfo (rdseed): 0
Checking HAS_CPU_FEATURE (RDT_A):
  HAS_CPU_FEATURE (RDT_A): 0
  cpuinfo (rdt_a): 0
Checking HAS_CPU_FEATURE (RDT_M):
  HAS_CPU_FEATURE (RDT_M): 0
  cpuinfo (cqm): 0
Checking HAS_CPU_FEATURE (RDTSCP):
  HAS_CPU_FEATURE (RDTSCP): 1
  cpuinfo (rdtscp): 1
Checking HAS_CPU_FEATURE (RTM):
  HAS_CPU_FEATURE (RTM): 0
  cpuinfo (rtm): 0
Checking HAS_CPU_FEATURE (SDBG):
  HAS_CPU_FEATURE (SDBG): 0
  cpuinfo (sdbg): 0
Checking HAS_CPU_FEATURE (SEP):
  HAS_CPU_FEATURE (SEP): 1
  cpuinfo (sep): 1
Checking HAS_CPU_FEATURE (SERIALIZE):
  HAS_CPU_FEATURE (SERIALIZE): 0
  cpuinfo (serialize): 0
Checking HAS_CPU_FEATURE (SGX):
  HAS_CPU_FEATURE (SGX): 0
  cpuinfo (sgx): 0
Checking HAS_CPU_FEATURE (SGX_LC):
  HAS_CPU_FEATURE (SGX_LC): 0
  cpuinfo (sgx_lc): 0
Checking HAS_CPU_FEATURE (SHA):
  HAS_CPU_FEATURE (SHA): 0
  cpuinfo (sha_ni): 0
Checking HAS_CPU_FEATURE (SHSTK):
  HAS_CPU_FEATURE (SHSTK): 0
  cpuinfo (shstk): 0
Checking HAS_CPU_FEATURE (SMAP):
  HAS_CPU_FEATURE (SMAP): 0
  cpuinfo (smap): 0
Checking HAS_CPU_FEATURE (SMEP):
  HAS_CPU_FEATURE (SMEP): 0
  cpuinfo (smep): 0
Checking HAS_CPU_FEATURE (SMX):
  HAS_CPU_FEATURE (SMX): 0
  cpuinfo (smx): 0
Checking HAS_CPU_FEATURE (SS):
  HAS_CPU_FEATURE (SS): 0
  cpuinfo (ss): 0
Checking HAS_CPU_FEATURE (SSBD):
  HAS_CPU_FEATURE (SSBD): 0
  cpuinfo (ssbd): 1
 *** failure ***
Checking HAS_CPU_FEATURE (SSE):
  HAS_CPU_FEATURE (SSE): 1
  cpuinfo (sse): 1
Checking HAS_CPU_FEATURE (SSE2):
  HAS_CPU_FEATURE (SSE2): 1
  cpuinfo (sse2): 1
Checking HAS_CPU_FEATURE (SSE3):
  HAS_CPU_FEATURE (SSE3): 1
  cpuinfo (pni): 1
Checking HAS_CPU_FEATURE (SSE4_1):
  HAS_CPU_FEATURE (SSE4_1): 1
  cpuinfo (sse4_1): 1
Checking HAS_CPU_FEATURE (SSE4_2):
  HAS_CPU_FEATURE (SSE4_2): 1
  cpuinfo (sse4_2): 1
Checking HAS_CPU_FEATURE (SSE4A):
  HAS_CPU_FEATURE (SSE4A): 1
  cpuinfo (sse4a): 1
Checking HAS_CPU_FEATURE (SSSE3):
  HAS_CPU_FEATURE (SSSE3): 1
  cpuinfo (ssse3): 1
Checking HAS_CPU_FEATURE (STIBP):
  HAS_CPU_FEATURE (STIBP): 0
  cpuinfo (stibp): 0
Checking HAS_CPU_FEATURE (SVM):
  HAS_CPU_FEATURE (SVM): 1
  cpuinfo (svm): 1
Checking HAS_CPU_FEATURE (TBM):
  HAS_CPU_FEATURE (TBM): 0
  cpuinfo (tbm): 1
 *** failure ***
Checking HAS_CPU_FEATURE (TM):
  HAS_CPU_FEATURE (TM): 0
  cpuinfo (tm): 0
Checking HAS_CPU_FEATURE (TM2):
  HAS_CPU_FEATURE (TM2): 0
  cpuinfo (tm2): 0
Checking HAS_CPU_FEATURE (TRACE):
  HAS_CPU_FEATURE (TRACE): 0
  cpuinfo (intel_pt): 0
Checking HAS_CPU_FEATURE (TSC):
  HAS_CPU_FEATURE (TSC): 1
  cpuinfo (tsc): 1
Checking HAS_CPU_FEATURE (TSC_ADJUST):
  HAS_CPU_FEATURE (TSC_ADJUST): 1
  cpuinfo (tsc_adjust): 1
Checking HAS_CPU_FEATURE (TSC_DEADLINE):
  HAS_CPU_FEATURE (TSC_DEADLINE): 1
  cpuinfo (tsc_deadline_timer): 1
Checking HAS_CPU_FEATURE (TSXLDTRK):
  HAS_CPU_FEATURE (TSXLDTRK): 0
  cpuinfo (tsxldtrk): 0
Checking HAS_CPU_FEATURE (UMIP):
  HAS_CPU_FEATURE (UMIP): 0
  cpuinfo (umip): 0
Checking HAS_CPU_FEATURE (VAES):
  HAS_CPU_FEATURE (VAES): 0
  cpuinfo (vaes): 0
Checking HAS_CPU_FEATURE (VME):
  HAS_CPU_FEATURE (VME): 1
  cpuinfo (vme): 1
Checking HAS_CPU_FEATURE (VMX):
  HAS_CPU_FEATURE (VMX): 0
  cpuinfo (vmx): 0
Checking HAS_CPU_FEATURE (VPCLMULQDQ):
  HAS_CPU_FEATURE (VPCLMULQDQ): 0
  cpuinfo (vpclmulqdq): 0
Checking HAS_CPU_FEATURE (WAITPKG):
  HAS_CPU_FEATURE (WAITPKG): 0
  cpuinfo (waitpkg): 0
Checking HAS_CPU_FEATURE (WBNOINVD):
  HAS_CPU_FEATURE (WBNOINVD): 0
  cpuinfo (wbnoinvd): 0
Checking HAS_CPU_FEATURE (X2APIC):
  HAS_CPU_FEATURE (X2APIC): 1
  cpuinfo (x2apic): 1
Checking HAS_CPU_FEATURE (XFD):
  HAS_CPU_FEATURE (XFD): 0
  cpuinfo (xfd): 0
Checking HAS_CPU_FEATURE (XGETBV_ECX_1):
  HAS_CPU_FEATURE (XGETBV_ECX_1): 0
  cpuinfo (xgetbv1): 0
Checking HAS_CPU_FEATURE (XOP):
  HAS_CPU_FEATURE (XOP): 1
  cpuinfo (xop): 1
Checking HAS_CPU_FEATURE (XSAVE):
  HAS_CPU_FEATURE (XSAVE): 1
  cpuinfo (xsave): 1
Checking HAS_CPU_FEATURE (XSAVEC):
  HAS_CPU_FEATURE (XSAVEC): 0
  cpuinfo (xsavec): 0
Checking HAS_CPU_FEATURE (XSAVEOPT):
  HAS_CPU_FEATURE (XSAVEOPT): 0
  cpuinfo (xsaveopt): 0
Checking HAS_CPU_FEATURE (XSAVES):
  HAS_CPU_FEATURE (XSAVES): 0
  cpuinfo (xsaves): 0
Checking HAS_CPU_FEATURE (XTPRUPDCTRL):
  HAS_CPU_FEATURE (XTPRUPDCTRL): 0
  cpuinfo (xtpr): 0
2 differences between /proc/cpuinfo and glibc code.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM
  2021-02-02 11:07       ` Andreas Schwab
@ 2021-02-02 15:01         ` H.J. Lu via Libc-alpha
  2021-02-22  9:49           ` Florian Weimer via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: H.J. Lu via Libc-alpha @ 2021-02-02 15:01 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: libc-alpha

On Tue, Feb 02, 2021 at 12:07:55PM +0100, Andreas Schwab wrote:
> ------ FAIL: elf/tst-cpu-features-cpuinfo ------
> Checking HAS_CPU_FEATURE (SSBD):
>   HAS_CPU_FEATURE (SSBD): 0
>   cpuinfo (ssbd): 1
>  *** failure ***

This should be fixed by

https://sourceware.org/pipermail/libc-alpha/2021-February/122244.html

> Checking HAS_CPU_FEATURE (TBM):
>   HAS_CPU_FEATURE (TBM): 0
>   cpuinfo (tbm): 1
>  *** failure ***

Please try th patch enclosed here.

> 2 differences between /proc/cpuinfo and glibc code.
> 

Thanks.

H.J.
---
x86_cpu_TBM should be x86_cpu_index_80000001_ecx + 21.
---
 sysdeps/x86/bits/platform/x86.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h
index 8f423ae721..dd59224b7f 100644
--- a/sysdeps/x86/bits/platform/x86.h
+++ b/sysdeps/x86/bits/platform/x86.h
@@ -244,7 +244,7 @@ enum
   x86_cpu_XOP			= x86_cpu_index_80000001_ecx + 11,
   x86_cpu_LWP			= x86_cpu_index_80000001_ecx + 15,
   x86_cpu_FMA4			= x86_cpu_index_80000001_ecx + 16,
-  x86_cpu_TBM			= x86_cpu_index_80000001_ecx + 20,
+  x86_cpu_TBM			= x86_cpu_index_80000001_ecx + 21,
 
   x86_cpu_index_80000001_edx
     = (CPUID_INDEX_80000001 * 8 * 4 * sizeof (unsigned int)
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM
  2021-02-02 15:01         ` [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM H.J. Lu via Libc-alpha
@ 2021-02-22  9:49           ` Florian Weimer via Libc-alpha
  2022-02-17  0:10             ` H.J. Lu via Libc-alpha
  0 siblings, 1 reply; 8+ messages in thread
From: Florian Weimer via Libc-alpha @ 2021-02-22  9:49 UTC (permalink / raw)
  To: H.J. Lu via Libc-alpha; +Cc: Andreas Schwab

* H. J. Lu via Libc-alpha:

>> Checking HAS_CPU_FEATURE (TBM):
>>   HAS_CPU_FEATURE (TBM): 0
>>   cpuinfo (tbm): 1
>>  *** failure ***
>
> Please try th patch enclosed here.
>
>> 2 differences between /proc/cpuinfo and glibc code.
>> 
>
> Thanks.
>
> H.J.
> ---
> x86_cpu_TBM should be x86_cpu_index_80000001_ecx + 21.
> ---
>  sysdeps/x86/bits/platform/x86.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h
> index 8f423ae721..dd59224b7f 100644
> --- a/sysdeps/x86/bits/platform/x86.h
> +++ b/sysdeps/x86/bits/platform/x86.h
> @@ -244,7 +244,7 @@ enum
>    x86_cpu_XOP			= x86_cpu_index_80000001_ecx + 11,
>    x86_cpu_LWP			= x86_cpu_index_80000001_ecx + 15,
>    x86_cpu_FMA4			= x86_cpu_index_80000001_ecx + 16,
> -  x86_cpu_TBM			= x86_cpu_index_80000001_ecx + 20,
> +  x86_cpu_TBM			= x86_cpu_index_80000001_ecx + 21,
>  
>    x86_cpu_index_80000001_edx
>      = (CPUID_INDEX_80000001 * 8 * 4 * sizeof (unsigned int)

I've verified this works works on a system with tbm in /proc/cpuinfo.
the bit offset also matches what's documented elsewhere.  Looks good to
me.

Thanks,
Florian


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM
  2021-02-22  9:49           ` Florian Weimer via Libc-alpha
@ 2022-02-17  0:10             ` H.J. Lu via Libc-alpha
  0 siblings, 0 replies; 8+ messages in thread
From: H.J. Lu via Libc-alpha @ 2022-02-17  0:10 UTC (permalink / raw)
  To: Florian Weimer, Sunil K Pandey; +Cc: Andreas Schwab, H.J. Lu via Libc-alpha

On Mon, Feb 22, 2021 at 1:49 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * H. J. Lu via Libc-alpha:
>
> >> Checking HAS_CPU_FEATURE (TBM):
> >>   HAS_CPU_FEATURE (TBM): 0
> >>   cpuinfo (tbm): 1
> >>  *** failure ***
> >
> > Please try th patch enclosed here.
> >
> >> 2 differences between /proc/cpuinfo and glibc code.
> >>
> >
> > Thanks.
> >
> > H.J.
> > ---
> > x86_cpu_TBM should be x86_cpu_index_80000001_ecx + 21.
> > ---
> >  sysdeps/x86/bits/platform/x86.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h
> > index 8f423ae721..dd59224b7f 100644
> > --- a/sysdeps/x86/bits/platform/x86.h
> > +++ b/sysdeps/x86/bits/platform/x86.h
> > @@ -244,7 +244,7 @@ enum
> >    x86_cpu_XOP                        = x86_cpu_index_80000001_ecx + 11,
> >    x86_cpu_LWP                        = x86_cpu_index_80000001_ecx + 15,
> >    x86_cpu_FMA4                       = x86_cpu_index_80000001_ecx + 16,
> > -  x86_cpu_TBM                        = x86_cpu_index_80000001_ecx + 20,
> > +  x86_cpu_TBM                        = x86_cpu_index_80000001_ecx + 21,
> >
> >    x86_cpu_index_80000001_edx
> >      = (CPUID_INDEX_80000001 * 8 * 4 * sizeof (unsigned int)
>
> I've verified this works works on a system with tbm in /proc/cpuinfo.
> the bit offset also matches what's documented elsewhere.  Looks good to
> me.
>
> Thanks,
> Florian
>

I am backporting this to 2.33 branch.

-- 
H.J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-17  0:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-21 19:47 [PATCH] x86: Properly match CPU feature [BZ #27222] H.J. Lu via Libc-alpha
2021-01-22 15:01 ` H.J. Lu via Libc-alpha
2021-01-22 16:56   ` Adhemerval Zanella via Libc-alpha
2021-01-22 18:11     ` H.J. Lu via Libc-alpha
2021-02-02 11:07       ` Andreas Schwab
2021-02-02 15:01         ` [PATCH] <bits/platform/x86.h>: Correct x86_cpu_TBM H.J. Lu via Libc-alpha
2021-02-22  9:49           ` Florian Weimer via Libc-alpha
2022-02-17  0:10             ` H.J. Lu via Libc-alpha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).