First, thanks for the great tool.
I noticed that deferrable timers are now flagged by the kernel with a
'D' at the end of the count. My understanding is that deferrable timers
don't run until the next non-deferrable timer is scheduled. Is that
correct?
If so, I believe PowerTOP shouldn't show them in its blamelist, as they
do not cause wakeups. I've attached a patch to this effect. I tried to
future-proof it against other flags being added.
Here's the kernel change:
commit c5c061b8f9726bc2c25e19dec227933a13d1e6b7
Author: Venki Pallipadi <[EMAIL PROTECTED]>
Date: Sun Jul 15 23:40:30 2007 -0700
Add a flag to indicate deferrable timers in /proc/timer_stats
Add a flag in /proc/timer_stats to indicate deferrable timers. This
will
let developers/users to differentiate between types of tiemrs in
/proc/timer_stats.
Deferrable timer and normal timer will appear in /proc/timer_stats
as below.
10D, 1 swapper queue_delayed_work_on
(delayed_work_timer_fn)
10, 1 swapper queue_delayed_work_on
(delayed_work_timer_fn)
Also version of timer_stats changes from v0.1 to v0.2
Signed-off-by: Venkatesh Pallipadi <[EMAIL PROTECTED]>
Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
Cc: Thomas Gleixner <[EMAIL PROTECTED]>
Cc: john stultz <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
Best regards,
Scott
--
Scott Lamb <http://www.slamb.org/>
Silence deferrable timers in the timer_stats display when run against
a recent kernel version. The kernel change, below, was first released in
Linux v2.6.22.
commit c5c061b8f9726bc2c25e19dec227933a13d1e6b7
Author: Venki Pallipadi <[EMAIL PROTECTED]>
Date: Sun Jul 15 23:40:30 2007 -0700
Add a flag to indicate deferrable timers in /proc/timer_stats
Add a flag in /proc/timer_stats to indicate deferrable timers. This will
let developers/users to differentiate between types of tiemrs in
/proc/timer_stats.
Deferrable timer and normal timer will appear in /proc/timer_stats as below.
10D, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
10, 1 swapper queue_delayed_work_on (delayed_work_timer_fn)
Also version of timer_stats changes from v0.1 to v0.2
Signed-off-by: Venkatesh Pallipadi <[EMAIL PROTECTED]>
Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
Cc: Thomas Gleixner <[EMAIL PROTECTED]>
Cc: john stultz <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
Index: powertop.c
===================================================================
--- powertop.c (revision 232)
+++ powertop.c (working copy)
@@ -499,6 +499,7 @@
char *count, *pid, *process, *func;
char line2[1024];
int cnt;
+ int deferrable = 0;
memset(line, 0, 1024);
if (fgets(line, 1024, file) == NULL)
break;
@@ -544,7 +545,13 @@
continue;
if (c)
*c = 0;
- cnt = strtoull(count, NULL, 10);
+ cnt = strtoull(count, &c, 10);
+ while (*c != 0) {
+ if (*c++ == 'D')
+ deferrable = 1;
+ }
+ if (deferrable)
+ continue;
sprintf(line2, "%15s : %s", process, func);
push_line(line2, cnt);
}
_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power