On 01/09/2013 02:50 PM, Namhyung Kim wrote: > From: Namhyung Kim <namhyung....@lge.com> > > AFAICS @target cpu of select_idle_sibling() is always either prev_cpu > or this_cpu. So no need to check it again and the conditionals can be > consolidated. > > Cc: Mike Galbraith <efa...@gmx.de> > Cc: Preeti U Murthy <pre...@linux.vnet.ibm.com> > Cc: Vincent Guittot <vincent.guit...@linaro.org> > Cc: Alex Shi <alex....@intel.com> > Signed-off-by: Namhyung Kim <namhy...@kernel.org> > --- > kernel/sched/fair.c | 17 ++++------------- > 1 file changed, 4 insertions(+), 13 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 5eea8707234a..af665814c216 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -3254,25 +3254,16 @@ find_idlest_cpu(struct sched_group *group, struct > task_struct *p, int this_cpu) > */ > static int select_idle_sibling(struct task_struct *p, int target) > { > - int cpu = smp_processor_id(); > - int prev_cpu = task_cpu(p); > struct sched_domain *sd; > struct sched_group *sg; > int i; > > /* > - * If the task is going to be woken-up on this cpu and if it is > - * already idle, then it is the right target. > - */ > - if (target == cpu && idle_cpu(cpu)) > - return cpu; > - > - /* > - * If the task is going to be woken-up on the cpu where it previously > - * ran and if it is currently idle, then it the right target. > + * If the task is going to be woken-up on this cpu or the cpu where it > + * previously ran and it is already idle, then it is the right target. > */ > - if (target == prev_cpu && idle_cpu(prev_cpu)) > - return prev_cpu; > + if (idle_cpu(target)) > + return target;
Uh, we don't know if the target is this_cpu or previous cpu, If we just check the target idle status, we may miss another idle cpu. So this patch change the logical in this function. > > /* > * Otherwise, iterate the domains and find an elegible idle cpu. > -- Thanks Alex -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/