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