Messages in this thread | | | Date | Fri, 3 Jul 2015 18:39:28 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH?] Livelock in pick_next_task_fair() / idle_balance() |
| |
On Thu, Jul 02, 2015 at 07:25:11AM +0800, Yuyang Du wrote: > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 40a7fcb..f7cc1ef 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -5898,6 +5898,10 @@ static int detach_tasks(struct lb_env *env) > return 0; > > while (!list_empty(tasks)) { > + > + if (env->idle == CPU_NEWLY_IDLE && env->src_rq->nr_running <= 1)
Should we make that ->idle != CPU_NOT_IDLE ?
> + break; > + > p = list_first_entry(tasks, struct task_struct, se.group_node); > > env->loop++;
| |