On Fri, 2012-10-12 at 16:11 +0100, Morten Rasmussen wrote:
> Hi Tixy,
> 
> Thanks for the patch. I think this patch is the right way to solve this
> issue.
> 
> There is still a problem with the priority filter in
> hmp_down_migration() which Viresh pointed out earlier. There is no
> checking of whether the task is actually allowed to run on any of the
> slower cpus. Solving that would actually also fix the issue that you are
> observing as a side effect. I have attached a patch.

The patch looks reasonable. I've just run it on TC2 and A9 with the
addition of a "pr_err("$");" before the "return 1;" and can see the
occosional '$' on TC2 and none on A9, as we would expect. So I guess
that counts as:

Reviewed-by: Jon Medhurst <t...@linaro.org>
Tested-by: Jon Medhurst <t...@linaro.org>

-- 
Tixy


> I think we should apply both.
> 
> Thanks,
> Morten
> 
> On Fri, Oct 12, 2012 at 02:33:40PM +0100, Jon Medhurst (Tixy) wrote:
> > On Fri, 2012-10-12 at 14:19 +0100, Jon Medhurst (Tixy) wrote:
> > > The attached patch fixes the immediate problem by avoiding the empty
> > > domain (which is probably a good thing anyway)
> > 
> > Oops, my last patch included some extra junk, the one attached to this
> > mail fixes this...
> 
> > From 7365076675b851355d48e9b1157e223d7719e3ac Mon Sep 17 00:00:00 2001
> > From: Jon Medhurst <t...@linaro.org>
> > Date: Fri, 12 Oct 2012 13:45:35 +0100
> > Subject: [PATCH] ARM: sched: Avoid empty 'slow' HMP domain
> > 
> > On homogeneous (non-heterogeneous) systems all CPUs will be declared
> > 'fast' and the slow cpu list will be empty. In this situation we need to
> > avoid adding an empty slow HMP domain otherwise the scheduler code will
> > blow up when it attempts to move a task to the slow domain.
> > 
> > Signed-off-by: Jon Medhurst <t...@linaro.org>
> > ---
> >  arch/arm/kernel/topology.c |   10 ++++++----
> >  1 file changed, 6 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c
> > index 58dac7a..0b51233 100644
> > --- a/arch/arm/kernel/topology.c
> > +++ b/arch/arm/kernel/topology.c
> > @@ -396,10 +396,12 @@ void __init arch_get_hmp_domains(struct list_head 
> > *hmp_domains_list)
> >      * Must be ordered with respect to compute capacity.
> >      * Fastest domain at head of list.
> >      */
> > -   domain = (struct hmp_domain *)
> > -           kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
> > -   cpumask_copy(&domain->cpus, &hmp_slow_cpu_mask);
> > -   list_add(&domain->hmp_domains, hmp_domains_list);
> > +   if(!cpumask_empty(&hmp_slow_cpu_mask)) {
> > +           domain = (struct hmp_domain *)
> > +                   kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
> > +           cpumask_copy(&domain->cpus, &hmp_slow_cpu_mask);
> > +           list_add(&domain->hmp_domains, hmp_domains_list);
> > +   }
> >     domain = (struct hmp_domain *)
> >             kmalloc(sizeof(struct hmp_domain), GFP_KERNEL);
> >     cpumask_copy(&domain->cpus, &hmp_fast_cpu_mask);
> > -- 
> > 1.7.10.4



_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to