Ivana Hutarova Varekova 12d44c5
diff -up sysstat-9.0.6.1/pr_stats.c.pom sysstat-9.0.6.1/pr_stats.c
Ivana Hutarova Varekova 12d44c5
--- sysstat-9.0.6.1/pr_stats.c.pom	2009-09-12 20:59:04.000000000 +0200
Ivana Hutarova Varekova 12d44c5
+++ sysstat-9.0.6.1/pr_stats.c	2010-09-08 15:39:20.000000000 +0200
Ivana Hutarova Varekova 12d44c5
@@ -118,7 +118,32 @@ __print_funct_t print_cpu_stats(struct a
Ivana Hutarova Varekova 12d44c5
 					continue;
Ivana Hutarova Varekova 12d44c5
 				}
Ivana Hutarova Varekova 12d44c5
 			}
Ivana Hutarova Varekova 12d44c5
-			
Ivana Hutarova Varekova 12d44c5
+			float c_idle = 0;
Ivana Hutarova Varekova 12d44c5
+			/* set the idle value */
Ivana Hutarova Varekova 12d44c5
+			if (scc->cpu_user    + scc->cpu_nice   + scc->cpu_sys   +
Ivana Hutarova Varekova 12d44c5
+				scc->cpu_iowait  + scc->cpu_idle   + scc->cpu_steal +
Ivana Hutarova Varekova 12d44c5
+				scc->cpu_hardirq + scc->cpu_softirq == 
Ivana Hutarova Varekova 12d44c5
+				scp->cpu_user    + scp->cpu_nice   + scp->cpu_sys   +
Ivana Hutarova Varekova 12d44c5
+				scp->cpu_iowait  + scp->cpu_idle   + scp->cpu_steal +
Ivana Hutarova Varekova 12d44c5
+				scp->cpu_hardirq + scp->cpu_softirq) {
Ivana Hutarova Varekova 12d44c5
+
Ivana Hutarova Varekova 12d44c5
+				if (scc->cpu_user    + scc->cpu_nice   + scc->cpu_sys   +
Ivana Hutarova Varekova 12d44c5
+				scc->cpu_iowait  + scc->cpu_idle   + scc->cpu_steal +
Ivana Hutarova Varekova 12d44c5
+				scc->cpu_hardirq + scc->cpu_softirq == 0) {
Ivana Hutarova Varekova 12d44c5
+					 /* cpu is offline */
Ivana Hutarova Varekova 12d44c5
+					c_idle = 0;
Ivana Hutarova Varekova 12d44c5
+				} else {
Ivana Hutarova Varekova 12d44c5
+					 /* if the CPU is tickless  then
Ivana Hutarova Varekova 12d44c5
+					    there is no change in CPU values but the sum of values is not null */
Ivana Hutarova Varekova 12d44c5
+					c_idle = 100;
Ivana Hutarova Varekova 12d44c5
+				}
Ivana Hutarova Varekova 12d44c5
+			} else {
Ivana Hutarova Varekova 12d44c5
+				if (scc->cpu_idle < scp->cpu_idle)
Ivana Hutarova Varekova 12d44c5
+					c_idle = 0;
Ivana Hutarova Varekova 12d44c5
+				else 
Ivana Hutarova Varekova 12d44c5
+					c_idle = ll_sp_value(scp->cpu_idle,   scc->cpu_idle,   g_itv);
Ivana Hutarova Varekova 12d44c5
+			}
Ivana Hutarova Varekova 12d44c5
+
Ivana Hutarova Varekova 12d44c5
 			if (DISPLAY_CPU_DEF(a->opt_flags)) {
Ivana Hutarova Varekova 12d44c5
 				printf("    %6.2f    %6.2f    %6.2f    %6.2f    %6.2f    %6.2f\n",
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_user,   scc->cpu_user,   g_itv),
Ivana Hutarova Varekova 12d44c5
@@ -128,9 +153,7 @@ __print_funct_t print_cpu_stats(struct a
Ivana Hutarova Varekova 12d44c5
 						   g_itv),
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_iowait, scc->cpu_iowait, g_itv),
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_steal,  scc->cpu_steal,  g_itv),
Ivana Hutarova Varekova 12d44c5
-				       scc->cpu_idle < scp->cpu_idle ?
Ivana Hutarova Varekova 12d44c5
-				       0.0 :
Ivana Hutarova Varekova 12d44c5
-				       ll_sp_value(scp->cpu_idle,   scc->cpu_idle,   g_itv));
Ivana Hutarova Varekova 12d44c5
+				       c_idle);
Ivana Hutarova Varekova 12d44c5
 			}
Ivana Hutarova Varekova 12d44c5
 			else if (DISPLAY_CPU_ALL(a->opt_flags)) {
Ivana Hutarova Varekova 12d44c5
 				printf("    %6.2f    %6.2f    %6.2f    %6.2f    %6.2f    %6.2f"
Ivana Hutarova Varekova 12d44c5
@@ -144,9 +167,7 @@ __print_funct_t print_cpu_stats(struct a
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_hardirq, scc->cpu_hardirq, g_itv),
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_softirq, scc->cpu_softirq, g_itv),
Ivana Hutarova Varekova 12d44c5
 				       ll_sp_value(scp->cpu_guest,   scc->cpu_guest,   g_itv),
Ivana Hutarova Varekova 12d44c5
-				       scc->cpu_idle < scp->cpu_idle ?
Ivana Hutarova Varekova 12d44c5
-				       0.0 :
Ivana Hutarova Varekova 12d44c5
-				       ll_sp_value(scp->cpu_idle,    scc->cpu_idle,    g_itv));
Ivana Hutarova Varekova 12d44c5
+				       c_idle);
Ivana Hutarova Varekova 12d44c5
 			}
Ivana Hutarova Varekova 12d44c5
 		}
Ivana Hutarova Varekova 12d44c5
 	}