27.2. 任务迁移
如果 SCHED_OTHER 任务生成大量其他任务,则它们将在同一 CPU 上运行。迁移 任务或 softirq 将尝试平衡这些任务,以便它们可以在空闲的 CPU 上运行。
可以调整 sched_nr_migrate 选项,以指定每次要移动的任务数量。由于实时任务有不同的迁移方式,因此它们不会直接受到此问题的影响。但是,当 softirq 移动任务时,它会锁定运行队列 spinlock,从而禁用中断。
警告
如果必须移动大量任务,它会在中断被禁用时发生,因此不会同时发生计时器事件或唤醒。当 sched_nr_migrate 设置为一个大的值时,这可能会导致实时任务出现严重延迟。