Thanks Marek, this fixes the build.
Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>
On 09/09/2018 04:02 AM, Marek Olšák wrote:
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) {
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev