During the full load when the system does not have opportunity
to sleep the wakeup counter counts too much (mostly more than 1000).

This issue originates from RH bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=528945

The problem is that if no event occurs the timerstats are used, but 
probably it is not correct for CPUs with multiple C-states. The 
proposed patch is attached.

If there is no wakeup the wakeup counter disappears. I am not sure
if this is the correct behaviour. If not, the fix seems simple:

-               if (totalevents && ticktime) {
+               if (ticktime) {

Jaroslav
diff -up powertop-1.13/powertop.c.wakeups powertop-1.13/powertop.c
--- powertop-1.13/powertop.c.wakeups	2008-12-30 13:52:54.000000000 -0500
+++ powertop-1.13/powertop.c	2009-10-14 05:17:28.314321483 -0400
@@ -1001,7 +1001,7 @@ int main(int argc, char **argv)
 		if (strstr(line, "total events")) {
 			int d;
 			d = strtoull(line, NULL, 10) / sysconf(_SC_NPROCESSORS_ONLN);
-			if (totalevents == 0) { /* No c-state info available, use timerstats instead */
+			if (totalevents == 0 && maxcstate <= 1) { /* No c-state info available, use timerstats instead */
 				totalevents = d * sysconf(_SC_NPROCESSORS_ONLN) + total_interrupt;
 				if (d < interrupt_0)
 					totalevents += interrupt_0 - d;
_______________________________________________
Power mailing list
Power@bughost.org
http://www.bughost.org/mailman/listinfo/power

Reply via email to