Blame sysstat-9.0.6.1-tickless.patch
|
Ivana Varekova |
ca9eb93 |
diff -up sysstat-9.0.6.1/mpstat.c.tl sysstat-9.0.6.1/mpstat.c
|
|
Ivana Varekova |
ca9eb93 |
--- sysstat-9.0.6.1/mpstat.c.tl 2009-09-12 20:59:04.000000000 +0200
|
|
Ivana Varekova |
ca9eb93 |
+++ sysstat-9.0.6.1/mpstat.c 2010-04-19 10:42:01.000000000 +0200
|
|
Ivana Varekova |
ca9eb93 |
@@ -272,10 +272,21 @@ void write_stats_core(int prev, int curr
|
|
Ivana Varekova |
ca9eb93 |
/* Recalculate itv for current proc */
|
|
Ivana Varekova |
9c3e1f0 |
pc_itv = get_per_cpu_interval(scc, scp);
|
|
Ivana Varekova |
9c3e1f0 |
|
|
Ivana Varekova |
ca9eb93 |
- if (!pc_itv) {
|
|
Ivana Varekova |
9c3e1f0 |
- /* Current CPU is offline */
|
|
Ivana Varekova |
ca9eb93 |
+ /* if the CPU is offline it is omited from /proc/stat
|
|
Ivana Varekova |
ca9eb93 |
+ so the sum of all values is zero */
|
|
Ivana Varekova |
ca9eb93 |
+ if ((scc->cpu_user + scc->cpu_nice + scc->cpu_sys +
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_iowait + scc->cpu_idle + scc->cpu_steal +
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_hardirq + scc->cpu_softirq) == 0) {
|
|
Ivana Varekova |
9c3e1f0 |
printf(" 0.00 0.00 0.00 0.00 0.00 0.00"
|
|
Ivana Varekova |
ca9eb93 |
" 0.00 0.00 0.00\n");
|
|
Ivana Varekova |
ca9eb93 |
+ continue;
|
|
Ivana Varekova |
ca9eb93 |
+ }
|
|
Ivana Varekova |
ca9eb93 |
+
|
|
Ivana Varekova |
ca9eb93 |
+ /* if the CPU is tickless then
|
|
Ivana Varekova |
ca9eb93 |
+ there is no change in CPU values but the sum of values is not null */
|
|
Ivana Varekova |
ca9eb93 |
+ if (!pc_itv) {
|
|
Ivana Varekova |
ca9eb93 |
+ printf(" 0.00 0.00 0.00 0.00 0.00 0.00"
|
|
Ivana Varekova |
ca9eb93 |
+ " 0.00 0.00 100.00\n");
|
|
Ivana Varekova |
9c3e1f0 |
}
|
|
Ivana Varekova |
9c3e1f0 |
else {
|
|
Ivana Varekova |
9c3e1f0 |
printf(" %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f"
|
|
Ivana Varekova |
ca9eb93 |
@@ -643,6 +654,14 @@ void rw_mpstat_loop(int dis_hdr, int row
|
|
Ivana Varekova |
ca9eb93 |
scc = st_cpu[curr] + cpu;
|
|
Ivana Varekova |
ca9eb93 |
scp = st_cpu[!curr] + cpu;
|
|
Ivana Varekova |
ca9eb93 |
*scc = *scp;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_user = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_nice = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_sys = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_iowait = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_idle = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_steal = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_hardirq = 0;
|
|
Ivana Varekova |
ca9eb93 |
+ scc->cpu_softirq = 0;
|
|
Ivana Varekova |
ca9eb93 |
}
|
|
Ivana Varekova |
ca9eb93 |
|
|
Ivana Varekova |
ca9eb93 |
/* Get time */
|