Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-11-27 20:21:43 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-28 16:41:22 +0300
commitce927e15e0e3570a02834b6001519a024ca1e2b6 (patch)
tree0a11c6b8eabe4f42999844cebd0eba941fa66765 /source/blender/windowmanager/intern/wm_jobs.c
parentb3e2c6941620773ccfba833f9945e2fce5169bb7 (diff)
Tweaks for threading schedule for Threadripper2 and EPYC
The idea is to make main thread and job threads to be scheduled on CPU dies which has direct access to memory (those are NUMA nodes 0 and 2). We also do this for new EPYC CPUs since their NUMA nodes 1 and 3 do have access but only to a higher range DDR slots. By preferring nodes 0 and 2 on EPYC we make it so users with partially filled DDR slots has fast memory access. One thing which is not really solved yet is localization of memory allocation: we do not guarantee that memory is allocated on the closest to the NUMA node DDR slot and hope that memory manager of OS is acting in favor of us.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_jobs.c')
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 92d51c9a400..cb627b465f4 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -334,6 +334,7 @@ static void *do_job_thread(void *job_v)
{
wmJob *wm_job = job_v;
+ BLI_thread_put_thread_on_fast_node();
wm_job->startjob(wm_job->run_customdata, &wm_job->stop, &wm_job->do_update, &wm_job->progress);
wm_job->ready = true;