- fix the sar output on tickless kernel

This commit is contained in:
Ivana Hutarova Varekova 2010-09-08 15:46:28 +02:00
parent 8761af97f3
commit 12d44c54f8
2 changed files with 65 additions and 1 deletions

View File

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

View File

@ -1,6 +1,6 @@
Name: sysstat
Version: 9.0.6.1
Release: 5%{?dist}
Release: 6%{?dist}
Summary: The sar and iostat system monitoring commands
License: GPLv2+
Group: Applications/System
@ -15,6 +15,7 @@ Patch2: sysstat-9.0.4-init_script_lsb.patch
Patch3: sysstat-9.0.6.1-tickless.patch
Patch4: sysstat-9.0.6.1-sec.patch
Patch5: sysstat-9.0.6.1-mp_isag.patch
Patch6: sysstat-9.0.6.1-sar-tickless.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -36,6 +37,7 @@ activity.
%patch3 -p1 -b .tl
%patch4 -p1 -b .sec
%patch5 -p1 -b .isag
%patch6 -p1 -b .tl2
iconv -f windows-1252 -t utf8 CREDITS > CREDITS.aux
mv CREDITS.aux CREDITS
@ -87,6 +89,9 @@ rm -rf %{buildroot}
%{_localstatedir}/log/sa
%changelog
* Wed Sep 8 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-6
- fix the sar output on tickless kernel
* Fri Aug 13 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-5
- remove bogus links description