3

I work with a Red Hat Enterprise Linux Server release 6.9 (Santiago) (I don't manage it). In the GRUB config file we have, let's say, isolcpus=2-32 (out of 36 cores). I also have a cgroup with cpuset=2-32 assigned via cgset.conf to all important processes on that system.

My question is: how do these 2 settings interact?

Normally, when I have isolcpus, starting a process with taskset -c 2-32 means all threads end up on core 2 as isolcpus "removes cores from scheduler" as I was told so there is no load balancing.

However, the observed effect of cpuset cgroup is different from taskset - the various processes and threads end up on different cores.

Could someone explain how isolcpus with taskset command produces one result, while isolcpus with cgroups/cpusets produce a different one?

Arkadiy
  • 171
  • 5
  • One thing is that, using taskset on cores isolated at boot time with `isol_cpu`, regardless of the number of threads you have in the application, they will all live on the first core you selected with taskset (except if you pin them in the code, e.g. using pthread `pthread_setaffinity_np()`). This is because the scheduler cannot access those cores and decide where to place the threads. – Bacon Oct 28 '19 at 02:17

0 Answers0