On 2018-09-13 2:40 a.m., Marek Olšák wrote:
> From: Marek Olšák <marek.ol...@amd.com>
> 
> [...]
> 
>  static void
> -util_init_cache_number(void)
> +util_init_thread_pinning(void)
>  {
>     /* Get a semi-random number. */
>     int64_t t = os_time_get_nano();
>     L3_cache_number = (t ^ (t >> 8) ^ (t >> 16));
> +
> +   /* Reset thread affinity for all children of fork and exec to prevent

I don't think exec (which doesn't spawn a child, it replaces the current
process "image" with a new one) has anything to do with this.


> +    * spawned processes and threads from inheriting the current thread's
> +    * affinity.

As the name implies, pthread_atfork only affects child processes spawned
with fork(), not new threads. As such, I'm afraid this won't help at
least for blender, which AFAICT doesn't call fork, it only spawns threads.


> +    * What happens if a driver is unloaded and the app creates a thread?
> +    */
> +   pthread_atfork(NULL, NULL, util_set_full_cpu_affinity);
>  }




-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to