Linuxカーネルがスレッドを他のCPUに移行するのを防ぐ方法はありますか? hwloc (pthread_setaffinity_np を使用) を使用して、スレッドをコアにバインドします。ただし、カーネルが高価な移行タスクを開始する場合があります。カーネルがこれを行うのを防ぐ方法はありますか? hwloc / pthreads ライブラリにフラグが見つかりませんでした。また、kernel/sched_nr_migrate を 0 に設定しても、目的の動作になりませんでした。どんな提案でも大歓迎です。ありがとう
4227 次
1 に答える
0
プロセス(スレッドではなく)のCPUアフィニティを設定できます。私が理解していることから、カーネルはそれを尊重しようと懸命に努力します。特定のプロセスが生成するすべてのスレッドを同じ CPU で実行する場合、これは許容できるソリューションです。
これは、いくつかの追加の背景と特定のシステム コールを提供する IBM の記事です。
http://www.ibm.com/developerworks/library/l-affinity/index.html
于 2012-12-28T20:38:15.190 に答える