Linux のすべてのシステム スレッドがコア 0 で実行されるようにし、他のすべてのコアはアプリケーションに任せたいと考えています。RHEL 6 を使用しており、/etc/rc.d/rc.sysinit の先頭に次の行を追加しました。
taskset -p 0x01 1
taskset -p 0x01 2
taskset -p 0x01 $$
PPID 2 が 0 以外のコアで実行されている多くのスレッド/プロセスがまだ見られますkthreadd
。プロセス 2 のすべての子もコア 0 で実行されるようにするにはどうすればよいですか?
編集: たとえば、コア 4 のスレッドがあります。これらのいずれかをコア 4 から移動できますか?
~> ps -L -eo pid,ppid,tid,nlwp,tty,comm,psr | grep 4$
PID PPID TID NLWP TT COMMAND PSR <-line added
15 2 15 1 ? migration/4 4
16 2 16 1 ? ksoftirqd/4 4
17 2 17 1 ? watchdog/4 4
31 2 31 1 ? events/4 4
46 2 46 1 ? kintegrityd/4 4
54 2 54 1 ? kblockd/4 4
65 2 65 1 ? ata/4 4
88 2 88 1 ? aio/4 4
96 2 96 1 ? crypto/4 4
420 2 420 1 ? ext4-dio-unwrit 4
879 2 879 1 ? kdmflush 4
926 2 926 1 ? ext4-dio-unwrit 4
935 2 935 1 ? ext4-dio-unwrit 4
1632 2 1632 1 ? rpciod/4 4