Reset each thread's affinity to all avilable cpus

reset happens at the start of the thread  SWDEV-240685

Change-Id: I6c35473bab67d02f76a8013ab9394f293c6f2b07


[ROCm/clr commit: 55b5f5f06c]
This commit is contained in:
Payam
2020-07-14 01:22:56 -04:00
committed by Payam Ghafari
parent f9c2313c79
commit 4e766cc4b2
+10
View File
@@ -369,6 +369,16 @@ const void* Os::createOsThread(amd::Thread* thread) {
// We never plan the use join, so free the resources now.
::pthread_attr_setdetachstate(&threadAttr, PTHREAD_CREATE_DETACHED);
cpu_set_t cpuset;
if (processorCount_ > 0) {
CPU_ZERO(&cpuset);
for (uint i = 0; i < processorCount_; i++) {
CPU_SET(i, &cpuset);
}
if (0 != pthread_attr_setaffinity_np(&threadAttr, sizeof(cpu_set_t), &cpuset)) {
fatal("pthread_attr_setaffinity_np failed to set affinity");
}
}
pthread_t handle = 0;
if (0 != ::pthread_create(&handle, &threadAttr, (void* (*)(void*)) & Thread::entry, thread)) {