Hi, I would prefer that you use the branch in the git tree below instead which is the final correction http://git.linaro.org/gitweb?p=people/vingu/kernel.git;a=shortlog;h=refs/heads/sched-pack-small-task-v1-fixed
Regards Vincent On 16 November 2012 19:32, Liviu Dudau <liviu.du...@arm.com> wrote: > From: Morten Rasmussen <morten.rasmus...@arm.com> > > Fixes update_packing_domain() to behave better for topologies where > SD_SHARE_POWERLINE is disabled at highest sched domain level. > > Signed-of-by: Morten Rasmussen <morten.rasmus...@arm.com> > --- > kernel/sched/fair.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 0ee9834..d758086 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -184,7 +184,8 @@ void update_packing_domain(int cpu) > if (!sd) > sd = rcu_dereference_check_sched_domain(cpu_rq(cpu)->sd); > else > - sd = sd->parent; > + if (cpumask_first(sched_domain_span(sd)) == cpu || > !sd->parent) > + sd = sd->parent; > > while (sd) { > struct sched_group *sg = sd->groups; > @@ -195,6 +196,18 @@ void update_packing_domain(int cpu) > if (id == -1) > id = cpumask_first(sched_domain_span(sd)); > > + /* Find sched group of candidate */ > + tmp = sd->groups; > + do { > + if (cpumask_test_cpu(id, sched_group_cpus(tmp))) { > + sg = tmp; > + break; > + } > + } while (tmp = tmp->next, tmp != sd->groups); > + > + pack = sg; > + tmp = sg->next; > + > /* loop the sched groups to find the best one */ > while (tmp != sg) { > if (tmp->sgp->power * sg->group_weight < > -- > 1.7.9.5 > > > > _______________________________________________ > linaro-dev mailing list > linaro-dev@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/linaro-dev _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev