У мене є система Linux, де ми використовували cgroups для створення двох cpu_exclusive cpusets, A і B, і де ми перемістили всі потоки користувачів і всі незв'язані потоки ядра до групи, приєднаної до cpuset A. Речі, що працюють у cpuset A, мають різну політику планувальника і різні пріоритети, і в cpuset A працює набагато більше потоків, ніж ядер у cpuset A.
Існує також невелика кількість дуже активних процесів, приєднаних до cpuset B, де загальна кількість потоків користувачів у цих процесах ніколи не перевищує кількість ядер, доступних виключно в cpuset B. Метою є захист цих важливих завдань, що виконуються в cpuset B від іншої активності на машині та мінімізувати затримку обробки.
Чи має така політика / пріоритет планування користувальницьких потоків, що працюють у cpuset B, якийсь ефект, що спостерігається? Заявлено інакше: чи зміна політики планування потоків B cpuset з типових SCHED_OTHER на SCHED_FIFO або SCHED_RR матиме наслідки, добрі чи погані?
Схоже, що відповідь має бути "ні", оскільки планувальник повинен мати можливість призначити кожному потоку, запущеному в cpuset B, його власне виділене ядро, тому не було б нічого визначати пріоритетів і не планувати, і тому політика та відносний пріоритет B нитки cpuset не мали б значення. З іншого боку, існують пов'язані потоки ядра та "домен планувальника", про які слід турбуватися, і, ймовірно, інші речі, які я не враховував.
Чи мають політику планування та пріоритети потоків, що працюють у надмірно захищеному ексклюзивному процесорі, у будь-якому практичному розумінні?