Name

find_busiest_group — Returns the busiest group within the sched_domain if there is an imbalance. If there isn't an imbalance, and the user has opted for power-savings, it returns a group whose CPUs can be put to idle by rebalancing those tasks elsewhere, if such a group exists.

Synopsis

struct sched_group * find_busiest_group (struct sched_domain * sd,
 int this_cpu,
 unsigned long * imbalance,
 enum cpu_idle_type idle,
 const struct cpumask * cpus,
 int * balance);
 

Arguments

sd

The sched_domain whose busiest group is to be returned.

this_cpu

The cpu for which load balancing is currently being performed.

imbalance

Variable which stores amount of weighted load which should be moved to restore balance/put a group to idle.

idle

The idle status of this_cpu.

cpus

The set of CPUs under consideration for load-balancing.

balance

Pointer to a variable indicating if this_cpu is the appropriate cpu to perform load balancing at this_level.

Description

Also calculates the amount of weighted load which should be moved to restore balance.

Returns

- the busiest group if imbalance exists. - If no imbalance and user has opted for power-savings balance, return the least loaded group whose CPUs can be put to idle by rebalancing its tasks onto our group.