-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
I just wanted to ask if there's already some progress on this? I created a patch like suggested in bugzilla#13 Can anyone please review this patch? Would it make sense to create a patch that does the devide-by-zero workaround and also throws a WARN_OUT? - -- Bjoern Boschman nfon AG Leonrodstraße 68 D-80636 München fon +49 (0)89 453 00-0 fax +49 (0)89 453 00-100 mail bjoern.bosch...@nfon.net web www.nfon.net Support-Hotline der nfon AG mail supp...@nfon.net fon +49 (0)89 453 00-555 web support.nfon.net Vorsitzender des Aufsichtsrats: Prof. Dr. Jens Boecker Vorstände: Fabian Hoppe, Marcus Otto, Jens Blomeyer Sitz der Gesellschaft München Amtsgericht München, HRB 168022 USt-ID DE254495743 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk5U/AMACgkQABMWRpwdNumkmACg0gm2IlCDsHLIM5NZe/xUYURS qp4AmwTI1TpK6KUulrga/RsbsxAKnPHT =/kk1 -----END PGP SIGNATURE-----
diff -urp linux-2.6-2.6.32.orig//kernel/sched.c linux-2.6-2.6.32/kernel/sched.c --- linux-2.6-2.6.32.orig//kernel/sched.c 2009-12-03 04:51:21.000000000 +0100 +++ linux-2.6-2.6.32/kernel/sched.c 2011-08-24 10:52:07.472342615 +0200 @@ -3640,6 +3640,7 @@ static void update_cpu_power(struct sche unsigned long weight = cpumask_weight(sched_domain_span(sd)); unsigned long power = SCHED_LOAD_SCALE; struct sched_group *sdg = sd->groups; + unsigned long scale_rt; if (sched_feat(ARCH_POWER)) power *= arch_scale_freq_power(sd, cpu); @@ -3657,12 +3658,16 @@ static void update_cpu_power(struct sche power >>= SCHED_LOAD_SHIFT; } + scale_rt = scale_rt_power(cpu); power *= scale_rt_power(cpu); power >>= SCHED_LOAD_SHIFT; if (!power) power = 1; + if (WARN_ON((long)power <= 0)) + printk(KERN_ERR "cpu_power = %ld; scale_rt = %ld\n", power, scale_rt); + sdg->cpu_power = power; } @@ -3685,6 +3690,9 @@ static void update_group_power(struct sc group = group->next; } while (group != child->groups); + if (WARN_ON((long)power <= 0)) + printk(KERN_ERR "cpu_power = %ld\n", power); + sdg->cpu_power = power; }