Bug#636797: patch for WARN_OUT?
-----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.boschman@nfon.net
web www.nfon.net
Support-Hotline der nfon AG
mail support@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;
}
Reply to: