Приветствую,
Имеется система на Intel Xeon Platinum 8160 CPU с ядром 4.19.71, присутствует 24 физических ядра и по 2 треда на ядро, т.е. в сумме — 48 логических ядер. Эксперимунтирую с виртуализацией (qemu и kvm) и хотел бы изолировать группу ядер от планировщика OS, т.е. чтобы эти ядра выполняли только код приложения на vcpu тредах из виртуальной машины. Добавил директиву isolcpus в grub.cfg:
isolcpus=1-23,25-47
Перезагрузился, однако вижу что ядерные треды выполняются на ядрах которые я пытаюсь изолировать :
# ps -A -L -o pid,nlwp,tid,c,psr,comm |sort -n -k 5 | grep 27
148 1 148 0 27 kworker/27:0-mm_percpu_wq
149 1 149 0 27 kworker/27:0H-events_highpri
267 1 267 0 27 kworker/27:1-mm_percpu_wq
799 1 799 0 27 kworker/27:1H-events_highpri
...
#
В выводе ps 5-я колонка это ID ядра, в данном случае 27, который согласно isolcpus= не должен пользоваться ядром.
Означает ли что ядерные треды это исключение из правил, и ядро все равно будет из выполнять на ядрах из директивы isolcpus или я упустил что-то очевидное?
Спасибо.