Я читаю экранирование процессора с помощью утилиты Алекса Цариунова cset
здесь: https://rt.wiki.kernel.org/index.php/Cpuset_Management_Utility/tutorial
В руководстве я нахожу, что формулировка миграции потоков ядра с доступа ко всем процессорам к запуску только в определенном процессоре немного двусмысленна.
Учебник говорит следующее:
Некоторые потоки ядра также могут быть перенесены в неэкранированный системный процессор. Это потоки, которые не привязаны к конкретным процессорам.
Если поток ядра связан с конкретным процессором, то обычно не рекомендуется переносить этот поток в системный набор, поскольку в худшем случае он может зависать, а в лучшем случае значительно замедлять работу системы. Например, эти потоки обычно являются потоками IRQ в ядре Linux реального времени, и вы можете не перемещать эти потоки ядра в систему. Если вы оставите их в корневом процессоре, они будут иметь доступ ко всем процессорам.
Затем учебник говорит:
Однако если вашему приложению требуется еще более "тихий" экран, вы можете переместить все подвижные потоки ядра в набор неэкранированной системы с помощью следующей команды.
[zuul:cpuset-trunk]# cset shield -k on cset: --> activating kthread
shielding cset: kthread shield activated, moving 70 tasks into system
cpuset... [==================================================]% cset:
done
Я смущен этим последним предложением. Используя слово , однако, кажется , предположить , что вы , как правило , не следует перемещать подвижные нити ядра , в неэкранированной набор системы.
Так ли это, или это безопасно для перемещения потоков ядра, которые могут быть перемещены в процессор, тем самым предотвращая их запуск на некоторых процессорах?