[Mesa-dev] [PATCH] build: fixup pthread_setaffinity_np checking
Emil Velikov
emil.l.velikov at gmail.com
Thu Sep 20 13:56:03 UTC 2018
From: Emil Velikov <emil.velikov at collabora.com>
Use the correct guard name (was missing the _NP) and use the
AC_CHECK_FUNCS helper instead of opencoding it.
Fixes: 3acc18fcf7c ("move pthread_setaffinity_np check to the build system")
Cc: Dylan Baker <dylan at pnwbakers.com>
Cc: Eric Engestrom <eric.engestrom at intel.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
configure.ac | 13 +------------
meson.build | 2 +-
src/gallium/auxiliary/util/u_helpers.c | 4 ++--
src/util/u_thread.h | 4 ++--
4 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7583a375ad7..c2fd762bbf5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -970,18 +970,7 @@ fi
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS"
-AC_MSG_CHECKING(whether pthread_setaffinity_np is supported)
-AC_LINK_IFELSE([AC_LANG_SOURCE([[
- #define _GNU_SOURCE
- #include <pthread.h>
- int main() {
- void *a = (void*) &pthread_setaffinity_np;
- long b = (long) a;
- return (int) b;
- }]])],
- [DEFINES="$DEFINES -DHAVE_PTHREAD_SETAFFINITY"];
- AC_MSG_RESULT([yes]),
- AC_MSG_RESULT([no]))
+AC_CHECK_FUNCS([pthread_setaffinity_np])
LIBS="$save_LIBS"
dnl Check for futex for fast inline simple_mtx_t.
diff --git a/meson.build b/meson.build
index 0588ebf8e7a..d58d850bb33 100644
--- a/meson.build
+++ b/meson.build
@@ -1075,7 +1075,7 @@ if dep_thread.found() and host_machine.system() != 'windows'
dependencies : dep_thread,
prefix : '#include <pthread.h>',
args : '-D_GNU_SOURCE')
- pre_args += '-DHAVE_PTHREAD_SETAFFINITY'
+ pre_args += '-DHAVE_PTHREAD_SETAFFINITY_NP'
endif
endif
if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 or with_gallium_opencl
diff --git a/src/gallium/auxiliary/util/u_helpers.c b/src/gallium/auxiliary/util/u_helpers.c
index b6cebf96329..149bfb10aad 100644
--- a/src/gallium/auxiliary/util/u_helpers.c
+++ b/src/gallium/auxiliary/util/u_helpers.c
@@ -121,7 +121,7 @@ util_upload_index_buffer(struct pipe_context *pipe,
return *out_buffer != NULL;
}
-#ifdef HAVE_PTHREAD_SETAFFINITY
+#ifdef HAVE_PTHREAD_SETAFFINITY_NP
static unsigned L3_cache_number;
static once_flag thread_pinning_once_flag = ONCE_FLAG_INIT;
@@ -169,7 +169,7 @@ util_init_thread_pinning(void)
void
util_context_thread_changed(struct pipe_context *ctx, thrd_t *upper_thread)
{
-#ifdef HAVE_PTHREAD_SETAFFINITY
+#ifdef HAVE_PTHREAD_SETAFFINITY_NP
/* If pinning has no effect, don't do anything. */
if (util_cpu_caps.nr_cpus == util_cpu_caps.cores_per_L3)
return;
diff --git a/src/util/u_thread.h b/src/util/u_thread.h
index 7538d7d634b..84b662bbf94 100644
--- a/src/util/u_thread.h
+++ b/src/util/u_thread.h
@@ -82,7 +82,7 @@ static inline void u_thread_setname( const char *name )
static inline void
util_pin_thread_to_L3(thrd_t thread, unsigned L3_index, unsigned cores_per_L3)
{
-#if defined(HAVE_PTHREAD_SETAFFINITY)
+#if defined(HAVE_PTHREAD_SETAFFINITY_NP)
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
@@ -102,7 +102,7 @@ util_pin_thread_to_L3(thrd_t thread, unsigned L3_index, unsigned cores_per_L3)
static inline int
util_get_L3_for_pinned_thread(thrd_t thread, unsigned cores_per_L3)
{
-#if defined(HAVE_PTHREAD_SETAFFINITY)
+#if defined(HAVE_PTHREAD_SETAFFINITY_NP)
cpu_set_t cpuset;
if (pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset) == 0) {
--
2.19.0
More information about the mesa-dev
mailing list