cset shield --kthread on:我应该使用这个吗?

cset shield --kthread on:我应该使用这个吗?

我正在使用 Alex Tsariounov 的实用程序阅读有关 CPU 屏蔽的信息csethttps://rt.wiki.kernel.org/index.php/Cpuset_Management_Utility/tutorial

在本教程中,我发现有关将内核线程从访问所有 CPU 迁移到仅在某个 CPU 集中运行的措辞有点含糊

本教程内容如下:

一些内核线程可以移至非屏蔽系统cpuset 也是如此。这些是未绑定到特定 CPU 的线程。

如果内核线程绑定到特定 CPU,那么将该线程移至系统因为在最坏的情况下,它可能会导致系统挂起,而在最好的情况下,它会使系统速度显著降低。例如,这些线程通常是实时 Linux 内核上的 IRQ 线程,您可能不想将这些内核线程移到系统。如果你把它们留在cpuset,那么他们将可以访问所有 CPU。

本教程继续说道:

但是,如果你的应用程序需要更“安静”的屏蔽,那么你可以将所有可移动的内核线程移到非屏蔽的系统使用以下命令设置。

[zuul:cpuset-trunk]# cset shield -k on cset: --> activating kthread
shielding cset: kthread shield activated, moving 70 tasks into system
cpuset... [==================================================]% cset:
done

我对最后这句话感到困惑。通过使用然而,这似乎表明你通常应该不是将可移动内核线程移至非屏蔽系统放。

是这种情况吗?或者移动内核线程是否安全?被移到一个 cpuset 中,从而阻止它们在某些 cpu 上运行?

相关内容