Linux: Remove remnants of the getcpu cache

Message ID 87mu68ns0y.fsf@mid.deneb.enyo.de
State Committed
Headers
Series Linux: Remove remnants of the getcpu cache |

Commit Message

Florian Weimer May 16, 2020, 9:33 a.m. UTC
  The getcpu cache was removed from the kernel in Linux 2.6.24.  glibc
support from the sched_getcpu implementation was removed in commit
dd26c44403582fdf10d663170f947dfe4b3207a0 ("Consolidate sched_getcpu").

---
 sysdeps/unix/sysv/linux/pthread_setaffinity.c        |  5 -----
 sysdeps/unix/sysv/linux/sched_setaffinity.c          |  5 -----
 sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c | 14 --------------
 sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c   | 14 --------------
 sysdeps/x86_64/nptl/tcb-offsets.sym                  |  1 -
 sysdeps/x86_64/nptl/tls.h                            |  2 +-
 6 files changed, 1 insertion(+), 40 deletions(-)
  

Comments

H.J. Lu May 16, 2020, 1:01 p.m. UTC | #1
On Sat, May 16, 2020 at 2:33 AM Florian Weimer <fw@deneb.enyo.de> wrote:
>
> The getcpu cache was removed from the kernel in Linux 2.6.24.  glibc
> support from the sched_getcpu implementation was removed in commit
> dd26c44403582fdf10d663170f947dfe4b3207a0 ("Consolidate sched_getcpu").
>
> ---
>  sysdeps/unix/sysv/linux/pthread_setaffinity.c        |  5 -----
>  sysdeps/unix/sysv/linux/sched_setaffinity.c          |  5 -----
>  sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c | 14 --------------
>  sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c   | 14 --------------
>  sysdeps/x86_64/nptl/tcb-offsets.sym                  |  1 -
>  sysdeps/x86_64/nptl/tls.h                            |  2 +-
>  6 files changed, 1 insertion(+), 40 deletions(-)
>

LGTM.

Thanks.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/pthread_setaffinity.c b/sysdeps/unix/sysv/linux/pthread_setaffinity.c
index 264d677c29..b0bd90c324 100644
--- a/sysdeps/unix/sysv/linux/pthread_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/pthread_setaffinity.c
@@ -33,11 +33,6 @@  __pthread_setaffinity_new (pthread_t th, size_t cpusetsize,
   res = INTERNAL_SYSCALL_CALL (sched_setaffinity, pd->tid, cpusetsize,
 			       cpuset);
 
-#ifdef RESET_VGETCPU_CACHE
-  if (!INTERNAL_SYSCALL_ERROR_P (res))
-    RESET_VGETCPU_CACHE ();
-#endif
-
   return (INTERNAL_SYSCALL_ERROR_P (res)
 	  ? INTERNAL_SYSCALL_ERRNO (res)
 	  : 0);
diff --git a/sysdeps/unix/sysv/linux/sched_setaffinity.c b/sysdeps/unix/sysv/linux/sched_setaffinity.c
index fc2c692783..978291fc3e 100644
--- a/sysdeps/unix/sysv/linux/sched_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_setaffinity.c
@@ -32,11 +32,6 @@  __sched_setaffinity_new (pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset)
 {
   int result = INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
 
-#ifdef RESET_VGETCPU_CACHE
-  if (result != -1)
-    RESET_VGETCPU_CACHE ();
-#endif
-
   return result;
 }
 libc_hidden_def (__sched_setaffinity_new)
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c b/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c
deleted file mode 100644
index a7bbe38156..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c
+++ /dev/null
@@ -1,14 +0,0 @@ 
-#include <tls.h>
-
-#define RESET_VGETCPU_CACHE() \
-  do {			      \
-    asm volatile ("movl %0, %%fs:%P1\n\t"				      \
-		  "movl %0, %%fs:%P2"					      \
-		  :							      \
-		  : "ir" (0), "i" (offsetof (struct pthread,		      \
-					     header.vgetcpu_cache[0])),	      \
-		    "i" (offsetof (struct pthread,			      \
-				   header.vgetcpu_cache[1])));		\
-  } while (0)
-
-#include <sysdeps/unix/sysv/linux/pthread_setaffinity.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c b/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c
deleted file mode 100644
index d1101c56f5..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c
+++ /dev/null
@@ -1,14 +0,0 @@ 
-#include <tls.h>
-
-#define RESET_VGETCPU_CACHE() \
-  do {			      \
-    asm volatile ("movl %0, %%fs:%P1\n\t"				      \
-		  "movl %0, %%fs:%P2"					      \
-		  :							      \
-		  : "ir" (0), "i" (offsetof (struct pthread,		      \
-					     header.vgetcpu_cache[0])),	      \
-		    "i" (offsetof (struct pthread,			      \
-				   header.vgetcpu_cache[1])));		\
-  } while (0)
-
-#include "../sched_setaffinity.c"
diff --git a/sysdeps/x86_64/nptl/tcb-offsets.sym b/sysdeps/x86_64/nptl/tcb-offsets.sym
index 037759eb4f..2bbd563a6c 100644
--- a/sysdeps/x86_64/nptl/tcb-offsets.sym
+++ b/sysdeps/x86_64/nptl/tcb-offsets.sym
@@ -11,7 +11,6 @@  CLEANUP_PREV		offsetof (struct _pthread_cleanup_buffer, __prev)
 MUTEX_FUTEX		offsetof (pthread_mutex_t, __data.__lock)
 MULTIPLE_THREADS_OFFSET	offsetof (tcbhead_t, multiple_threads)
 POINTER_GUARD		offsetof (tcbhead_t, pointer_guard)
-VGETCPU_CACHE_OFFSET	offsetof (tcbhead_t, vgetcpu_cache)
 FEATURE_1_OFFSET	offsetof (tcbhead_t, feature_1)
 SSP_BASE_OFFSET		offsetof (tcbhead_t, ssp_base)
 
diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h
index cb60ed4c3c..7ba9c4e69b 100644
--- a/sysdeps/x86_64/nptl/tls.h
+++ b/sysdeps/x86_64/nptl/tls.h
@@ -50,7 +50,7 @@  typedef struct
   uintptr_t sysinfo;
   uintptr_t stack_guard;
   uintptr_t pointer_guard;
-  unsigned long int vgetcpu_cache[2];
+  unsigned long int unused_vgetcpu_cache[2];
   /* Bit 0: X86_FEATURE_1_IBT.
      Bit 1: X86_FEATURE_1_SHSTK.
    */