From: Marek Olšák <marek.ol...@amd.com>

---
 src/util/u_thread.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/util/u_thread.h b/src/util/u_thread.h
index ec0d9a7..0c20ebb 100644
--- a/src/util/u_thread.h
+++ b/src/util/u_thread.h
@@ -29,20 +29,23 @@
 
 #include <stdint.h>
 #include <stdbool.h>
 
 #include "c11/threads.h"
 
 #ifdef HAVE_PTHREAD
 #include <signal.h>
 #endif
 
+#if defined(HAVE_PTHREAD) && !defined(ANDROID)
+#define HAVE_PTHREAD_SETAFFINITY
+#endif
 
 static inline thrd_t u_thread_create(int (*routine)(void *), void *param)
 {
    thrd_t thread;
 #ifdef HAVE_PTHREAD
    sigset_t saved_set, new_set;
    int ret;
 
    sigfillset(&new_set);
    pthread_sigmask(SIG_SETMASK, &new_set, &saved_set);
@@ -76,41 +79,41 @@ static inline void u_thread_setname( const char *name )
  * is very expensive. It's desirable to pin a group of closely cooperating
  * threads to one group of cores sharing L3.
  *
  * \param thread        thread
  * \param L3_index      index of the L3 cache
  * \param cores_per_L3  number of CPU cores shared by one L3
  */
 static inline void
 util_pin_thread_to_L3(thrd_t thread, unsigned L3_index, unsigned cores_per_L3)
 {
-#if defined(HAVE_PTHREAD)
+#if defined(HAVE_PTHREAD_SETAFFINITY)
    cpu_set_t cpuset;
 
    CPU_ZERO(&cpuset);
    for (unsigned i = 0; i < cores_per_L3; i++)
       CPU_SET(L3_index * cores_per_L3 + i, &cpuset);
    pthread_setaffinity_np(thread, sizeof(cpuset), &cpuset);
 #endif
 }
 
 /**
  * Return the index of L3 that the thread is pinned to. If the thread is
  * pinned to multiple L3 caches, return -1.
  *
  * \param thread        thread
  * \param cores_per_L3  number of CPU cores shared by one L3
  */
 static inline int
 util_get_L3_for_pinned_thread(thrd_t thread, unsigned cores_per_L3)
 {
-#if defined(HAVE_PTHREAD)
+#if defined(HAVE_PTHREAD_SETAFFINITY)
    cpu_set_t cpuset;
 
    if (pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset) == 0) {
       int L3_index = -1;
 
       for (unsigned i = 0; i < CPU_SETSIZE; i++) {
          if (CPU_ISSET(i, &cpuset)) {
             int x = i / cores_per_L3;
 
             if (L3_index != x) {
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to