|
|
| scheduler_tick() |
|
|
|
| trigger_load_balance() |
|
|
|
| <in softirq context> run_rebalance_domains() | pick_next_task → pick_next_task_fair() |
_do_fork() wake_up_new_task () | do_execveat_common() sched_exec() | try_to_wake_up() | nohz_idle_balance() rebalance_domains() | idle_balance() |
select_task_rq → select_task_rq_fair() | load_balance() | |||
struct sched_group = \ find_idlest_group(); ...
int cpu = find_idlest_cpu(); | struct sched_group = \ find_busiest_group(); ...
struct rq *busiest = \ find_busiest_queue(); |