スケジューラでCPUマスキング - カーネルからバインドされたカーネルスレッドを移動する方法は?

スケジューラでCPUマスキング - カーネルからバインドされたカーネルスレッドを移動する方法は?

4つの物理コア(インデックス0-3)があり、コア1-3をユーザーアプリケーションの保護専用として指定し、すべてのシステムスレッドをコア0に送信しようとしているとします。私は答えに従っていますここそして使用cset

# /usr/local/bin/cset shield --cpu 1-3  
cset: --> activating shielding:
cset: moving 145 tasks from root into system cpuset...
[==================================================]%
cset: "system" cpuset of CPUSPEC(0) with 145 tasks running
cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running

しかし、すべてのカーネルスレッドをコア0に移動することはできないようです。

# cset shield --kthread on
cset shield --kthread on
cset: --> activating kthread shielding
cset: kthread shield activated, moving 175 tasks into system cpuset...
[==================================================]%
cset: **> 30 tasks are not movable, impossible to move
cset: done

これUbuntuのマニュアルページフラグ--kthreadは次のようにのみ適用されます。束縛されていないカーネルスレッド:

   -k on|off, --kthread=on|off
       shield from unbound interrupt threads as well

だから引っ越すべきだと思います。境界カーネルスレッドもコア1-3から離れています。どうすればいいですか? (CentOSを好む.)

ベストアンサー1

おすすめ記事