[Mesa-dev] [PATCH 1/2] util: try to fix the Android build

Tapani Pälli tapani.palli at intel.com
Mon Sep 10 05:02:49 UTC 2018


Thanks Marek, this fixes the build.

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 09/09/2018 04:02 AM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at 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) {
> 


More information about the mesa-dev mailing list