Re: find_busiest_group divide error

From: Dietmar Eggemann
Date: Wed Jul 16 2014 - 17:31:15 EST


Hi Greg,

On 16/07/14 19:52, Greg Donald wrote:
On Wed, Jul 16, 2014 at 05:27:36PM +0200, Peter Zijlstra wrote:
Could you confirm if reverting caffcdd8d27ba78730d5540396ce72ad022aff2c
cures things for you?

Otherwise there's two very similar issues, see also:

lkml.kernel.org/r/20140716145546.GA6922@xxxxxxxx

Cured.

I reverted caffcdd8d27ba78730d5540396ce72ad022aff2c which did nothing as
far as I can tell, then I removed the
two lines from http://marc.info/?l=linux-kernel&m=140552264825755, then
I added back the one line from
https://bugzilla.kernel.org/show_bug.cgi?id=80251#c8.

My patch caffcdd8d27ba78730d5540396ce72ad022aff2c got rid of cpumask_clear(sched_group_cpus(sg)); and sg->sgp->power = 0; so reverting it (and replacing sg->sgp->power = 0 with
sg->sgc->capacity = 0) should cure it too. (although the missing cpumask_clear() is the culprit on your machine here).

Could I ask you to share the content of your /proc/cpuinfo file? I suspect it might be the same topology as the one Bruno just sent out (the one of a dual single core CPU with hyper-threading ?)

https://lkml.org/lkml/2014/7/16/603

Thanks,

-- Dietmar


I ended up with

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index dc2927c..7c3674d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5848,7 +5848,6 @@ build_sched_groups(struct sched_domain *sd, int
cpu)

group = get_group(i, sdd, &sg);
cpumask_clear(sched_group_cpus(sg));
- sg->sgp->power = 0;
cpumask_setall(sched_group_mask(sg));

for_each_cpu(j, span) {


Thanks.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/