File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -9612,15 +9612,24 @@ static void nohz_balancer_kick(struct rq *rq)
9612
9612
9613
9613
sd = rcu_dereference (rq -> sd );
9614
9614
if (sd ) {
9615
- if ((rq -> cfs .h_nr_running >= 1 ) &&
9616
- check_cpu_capacity (rq , sd )) {
9615
+ /*
9616
+ * If there's a CFS task and the current CPU has reduced
9617
+ * capacity; kick the ILB to see if there's a better CPU to run
9618
+ * on.
9619
+ */
9620
+ if (rq -> cfs .h_nr_running >= 1 && check_cpu_capacity (rq , sd )) {
9617
9621
flags = NOHZ_KICK_MASK ;
9618
9622
goto unlock ;
9619
9623
}
9620
9624
}
9621
9625
9622
9626
sd = rcu_dereference (per_cpu (sd_asym_packing , cpu ));
9623
9627
if (sd ) {
9628
+ /*
9629
+ * When ASYM_PACKING; see if there's a more preferred CPU
9630
+ * currently idle; in which case, kick the ILB to move tasks
9631
+ * around.
9632
+ */
9624
9633
for_each_cpu_and (i , sched_domain_span (sd ), nohz .idle_cpus_mask ) {
9625
9634
if (sched_asym_prefer (i , cpu )) {
9626
9635
flags = NOHZ_KICK_MASK ;
You can’t perform that action at this time.
0 commit comments