mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Linux: Remove remnants of the getcpu cache
The getcpu cache was removed from the kernel in Linux 2.6.24. glibc
support from the sched_getcpu implementation was removed in commit
dd26c44403
("Consolidate sched_getcpu").
This commit is contained in:
@ -33,11 +33,6 @@ __pthread_setaffinity_new (pthread_t th, size_t cpusetsize,
|
|||||||
res = INTERNAL_SYSCALL_CALL (sched_setaffinity, pd->tid, cpusetsize,
|
res = INTERNAL_SYSCALL_CALL (sched_setaffinity, pd->tid, cpusetsize,
|
||||||
cpuset);
|
cpuset);
|
||||||
|
|
||||||
#ifdef RESET_VGETCPU_CACHE
|
|
||||||
if (!INTERNAL_SYSCALL_ERROR_P (res))
|
|
||||||
RESET_VGETCPU_CACHE ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return (INTERNAL_SYSCALL_ERROR_P (res)
|
return (INTERNAL_SYSCALL_ERROR_P (res)
|
||||||
? INTERNAL_SYSCALL_ERRNO (res)
|
? INTERNAL_SYSCALL_ERRNO (res)
|
||||||
: 0);
|
: 0);
|
||||||
|
@ -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);
|
int result = INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
|
||||||
|
|
||||||
#ifdef RESET_VGETCPU_CACHE
|
|
||||||
if (result != -1)
|
|
||||||
RESET_VGETCPU_CACHE ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
libc_hidden_def (__sched_setaffinity_new)
|
libc_hidden_def (__sched_setaffinity_new)
|
||||||
|
@ -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>
|
|
@ -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"
|
|
@ -11,7 +11,6 @@ CLEANUP_PREV offsetof (struct _pthread_cleanup_buffer, __prev)
|
|||||||
MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
|
MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
|
||||||
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
|
||||||
POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
|
POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
|
||||||
VGETCPU_CACHE_OFFSET offsetof (tcbhead_t, vgetcpu_cache)
|
|
||||||
FEATURE_1_OFFSET offsetof (tcbhead_t, feature_1)
|
FEATURE_1_OFFSET offsetof (tcbhead_t, feature_1)
|
||||||
SSP_BASE_OFFSET offsetof (tcbhead_t, ssp_base)
|
SSP_BASE_OFFSET offsetof (tcbhead_t, ssp_base)
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ typedef struct
|
|||||||
uintptr_t sysinfo;
|
uintptr_t sysinfo;
|
||||||
uintptr_t stack_guard;
|
uintptr_t stack_guard;
|
||||||
uintptr_t pointer_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 0: X86_FEATURE_1_IBT.
|
||||||
Bit 1: X86_FEATURE_1_SHSTK.
|
Bit 1: X86_FEATURE_1_SHSTK.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user