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 | } | ||
