第21章 SCHED_OTHER タスクの移行の制限
sched_nr_migrate
を使用すると、SCHED_OTHER
が他の CPU に移行するタスクを制限できます。
前提条件
- 管理者権限がある。
21.1. タスクの移行
SCHED_OTHER
タスクが他の多数のタスクを生成する場合、それらはすべて同じ CPU 上で実行されます。migration
タスクまたは softirq
は、アイドル状態の CPU で実行できるように、これらのタスクのバランスをとろうとします。
sched_nr_migrate
は、一度に移動するタスクの数を指定するように調整できます。リアルタイムタスクの移行方法は異なるため、この影響を直接受けることはありません。ただし、softirq
がタスクを移動すると、実行キューのスピンロックが有効になり、割り込みが無効になります。
移行が必要なタスクが多数存在すると、そのタスクは割り込みが無効になっている間に発生するため、タイマーイベントやウェイクアップは同時には行われません。これにより、sched_nr_migrate
を大きい値に設定した場合に、リアルタイムタスクで深刻なレイテンシーが発生する可能性があります。