* [PATCH] Linux: Remove remnants of the getcpu cache
@ 2020-05-16 9:33 Florian Weimer
2020-05-16 13:01 ` H.J. Lu
0 siblings, 1 reply; 2+ messages in thread
From: Florian Weimer @ 2020-05-16 9:33 UTC (permalink / raw)
To: libc-alpha
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(-)
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.
*/
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Linux: Remove remnants of the getcpu cache
2020-05-16 9:33 [PATCH] Linux: Remove remnants of the getcpu cache Florian Weimer
@ 2020-05-16 13:01 ` H.J. Lu
0 siblings, 0 replies; 2+ messages in thread
From: H.J. Lu @ 2020-05-16 13:01 UTC (permalink / raw)
To: Florian Weimer; +Cc: GNU C Library, Adhemerval Zanella
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.
--
H.J.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-05-16 13:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-16 9:33 [PATCH] Linux: Remove remnants of the getcpu cache Florian Weimer
2020-05-16 13:01 ` H.J. Lu
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).