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