diff options
-rw-r--r-- | tools/perf/bench/futex.h | 13 | ||||
-rw-r--r-- | tools/perf/config/Makefile | 6 | ||||
-rw-r--r-- | tools/perf/config/feature-checks/Makefile | 4 | ||||
-rw-r--r-- | tools/perf/config/feature-checks/test-all.c | 5 | ||||
-rw-r--r-- | tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c | 14 |
5 files changed, 42 insertions, 0 deletions
diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h index 71f2844cf97f..7ed22ff1e1ac 100644 --- a/tools/perf/bench/futex.h +++ b/tools/perf/bench/futex.h | |||
@@ -68,4 +68,17 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak | |||
68 | val, opflags); | 68 | val, opflags); |
69 | } | 69 | } |
70 | 70 | ||
71 | #ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP | ||
72 | #include <pthread.h> | ||
73 | static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr, | ||
74 | size_t cpusetsize, | ||
75 | cpu_set_t *cpuset) | ||
76 | { | ||
77 | attr = attr; | ||
78 | cpusetsize = cpusetsize; | ||
79 | cpuset = cpuset; | ||
80 | return 0; | ||
81 | } | ||
82 | #endif | ||
83 | |||
71 | #endif /* _FUTEX_H */ | 84 | #endif /* _FUTEX_H */ |
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index 648e31ff4021..cc224080b525 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile | |||
@@ -198,6 +198,7 @@ CORE_FEATURE_TESTS = \ | |||
198 | libpython-version \ | 198 | libpython-version \ |
199 | libslang \ | 199 | libslang \ |
200 | libunwind \ | 200 | libunwind \ |
201 | pthread-attr-setaffinity-np \ | ||
201 | stackprotector-all \ | 202 | stackprotector-all \ |
202 | timerfd \ | 203 | timerfd \ |
203 | libdw-dwarf-unwind \ | 204 | libdw-dwarf-unwind \ |
@@ -226,6 +227,7 @@ VF_FEATURE_TESTS = \ | |||
226 | libelf-getphdrnum \ | 227 | libelf-getphdrnum \ |
227 | libelf-mmap \ | 228 | libelf-mmap \ |
228 | libpython-version \ | 229 | libpython-version \ |
230 | pthread-attr-setaffinity-np \ | ||
229 | stackprotector-all \ | 231 | stackprotector-all \ |
230 | timerfd \ | 232 | timerfd \ |
231 | libunwind-debug-frame \ | 233 | libunwind-debug-frame \ |
@@ -301,6 +303,10 @@ ifeq ($(feature-sync-compare-and-swap), 1) | |||
301 | CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT | 303 | CFLAGS += -DHAVE_SYNC_COMPARE_AND_SWAP_SUPPORT |
302 | endif | 304 | endif |
303 | 305 | ||
306 | ifeq ($(feature-pthread-attr-setaffinity-np), 1) | ||
307 | CFLAGS += -DHAVE_PTHREAD_ATTR_SETAFFINITY_NP | ||
308 | endif | ||
309 | |||
304 | ifndef NO_BIONIC | 310 | ifndef NO_BIONIC |
305 | $(call feature_check,bionic) | 311 | $(call feature_check,bionic) |
306 | ifeq ($(feature-bionic), 1) | 312 | ifeq ($(feature-bionic), 1) |
diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile index 53f19b5dbc37..42ac05aaf8ac 100644 --- a/tools/perf/config/feature-checks/Makefile +++ b/tools/perf/config/feature-checks/Makefile | |||
@@ -25,6 +25,7 @@ FILES= \ | |||
25 | test-libslang.bin \ | 25 | test-libslang.bin \ |
26 | test-libunwind.bin \ | 26 | test-libunwind.bin \ |
27 | test-libunwind-debug-frame.bin \ | 27 | test-libunwind-debug-frame.bin \ |
28 | test-pthread-attr-setaffinity-np.bin \ | ||
28 | test-stackprotector-all.bin \ | 29 | test-stackprotector-all.bin \ |
29 | test-timerfd.bin \ | 30 | test-timerfd.bin \ |
30 | test-libdw-dwarf-unwind.bin \ | 31 | test-libdw-dwarf-unwind.bin \ |
@@ -47,6 +48,9 @@ test-all.bin: | |||
47 | test-hello.bin: | 48 | test-hello.bin: |
48 | $(BUILD) | 49 | $(BUILD) |
49 | 50 | ||
51 | test-pthread-attr-setaffinity-np.bin: | ||
52 | $(BUILD) -Werror -lpthread | ||
53 | |||
50 | test-stackprotector-all.bin: | 54 | test-stackprotector-all.bin: |
51 | $(BUILD) -Werror -fstack-protector-all | 55 | $(BUILD) -Werror -fstack-protector-all |
52 | 56 | ||
diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c index 652e0098eba6..6d4d09323922 100644 --- a/tools/perf/config/feature-checks/test-all.c +++ b/tools/perf/config/feature-checks/test-all.c | |||
@@ -97,6 +97,10 @@ | |||
97 | # include "test-zlib.c" | 97 | # include "test-zlib.c" |
98 | #undef main | 98 | #undef main |
99 | 99 | ||
100 | #define main main_test_pthread_attr_setaffinity_np | ||
101 | # include "test-pthread_attr_setaffinity_np.c" | ||
102 | #undef main | ||
103 | |||
100 | int main(int argc, char *argv[]) | 104 | int main(int argc, char *argv[]) |
101 | { | 105 | { |
102 | main_test_libpython(); | 106 | main_test_libpython(); |
@@ -121,6 +125,7 @@ int main(int argc, char *argv[]) | |||
121 | main_test_libdw_dwarf_unwind(); | 125 | main_test_libdw_dwarf_unwind(); |
122 | main_test_sync_compare_and_swap(argc, argv); | 126 | main_test_sync_compare_and_swap(argc, argv); |
123 | main_test_zlib(); | 127 | main_test_zlib(); |
128 | main_test_pthread_attr_setaffinity_np(); | ||
124 | 129 | ||
125 | return 0; | 130 | return 0; |
126 | } | 131 | } |
diff --git a/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c new file mode 100644 index 000000000000..0a0d3ecb4e8a --- /dev/null +++ b/tools/perf/config/feature-checks/test-pthread-attr-setaffinity-np.c | |||
@@ -0,0 +1,14 @@ | |||
1 | #include <stdint.h> | ||
2 | #include <pthread.h> | ||
3 | |||
4 | int main(void) | ||
5 | { | ||
6 | int ret = 0; | ||
7 | pthread_attr_t thread_attr; | ||
8 | |||
9 | pthread_attr_init(&thread_attr); | ||
10 | /* don't care abt exact args, just the API itself in libpthread */ | ||
11 | ret = pthread_attr_setaffinity_np(&thread_attr, 0, NULL); | ||
12 | |||
13 | return ret; | ||
14 | } | ||