,我们可以看看其实现代码:
static void
load_balance(runqueue_t *this_rq, int idle, cpumask_t cpumask)
{
int imbalance...找到最繁忙的 CPU 运行队列
busiest = find_busiest_queue(this_rq, this_cpu, idle, &imbalance, cpumask);
if...从调度域中找到一个最繁忙的调度组
group = find_busiest_group(sd, this_cpu, &imbalance, idle, &sd_idle,...从最繁忙的调度组中找到一个最繁忙的运行队列
busiest = find_busiest_queue(group, idle, imbalance, &cpus);
......从最繁忙的运行队列中迁移一些任务到当前任务队列
ld_moved = move_tasks(this_rq, this_cpu, busiest, imbalance, sd, idle