sysstat/sysstat-10.1.2-omit-first-report.patch
2012-12-03 17:47:22 +01:00

144 lines
5.4 KiB
Diff

diff -upr sysstat-10.1.2.orig/iostat.c sysstat-10.1.2/iostat.c
--- sysstat-10.1.2.orig/iostat.c 2012-10-03 21:18:22.000000000 +0200
+++ sysstat-10.1.2/iostat.c 2012-11-22 16:24:38.860140304 +0100
@@ -85,13 +85,13 @@ void usage(char *progname)
progname);
#ifdef DEBUG
fprintf(stderr, _("Options are:\n"
- "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]\n"
+ "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]\n"
"[ -j { ID | LABEL | PATH | UUID | ... } ]\n"
"[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]\n"
"[ <device> [...] | ALL ] [ --debuginfo ]\n"));
#else
fprintf(stderr, _("Options are:\n"
- "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]\n"
+ "[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]\n"
"[ -j { ID | LABEL | PATH | UUID | ... } ]\n"
"[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]\n"
"[ <device> [...] | ALL ]\n"));
@@ -1205,6 +1205,12 @@ void write_stats(int curr, struct tm *re
void rw_io_stat_loop(long int count, struct tm *rectime)
{
int curr = 1;
+ int skip = 0;
+
+ /* Should we skip first report? */
+ if (DISPLAY_OMIT_SINCE_BOOT(flags) && interval > 0) {
+ skip = 1;
+ }
/* Don't buffer data if redirected to a pipe */
setbuf(stdout, NULL);
@@ -1261,12 +1267,18 @@ void rw_io_stat_loop(long int count, str
/* Get time */
get_localtime(rectime, 0);
- /* Print results */
- write_stats(curr, rectime);
+ /* Check whether we should skip first report */
+ if (!skip) {
+ /* Print results */
+ write_stats(curr, rectime);
- if (count > 0) {
- count--;
+ if (count > 0) {
+ count--;
+ }
+ } else {
+ skip = 0;
}
+
if (count) {
curr ^= 1;
pause();
@@ -1458,7 +1470,12 @@ int main(int argc, char **argv)
/* Display extended stats */
flags |= I_D_EXTENDED;
break;
-
+
+ case 'y':
+ /* Omit first since boot stats */
+ flags |= I_D_OMIT_SINCE_BOOT;
+ break;
+
case 'z':
/* Omit output for devices with no activity */
flags |= I_D_ZERO_OMIT;
diff -upr sysstat-10.1.2.orig/iostat.h sysstat-10.1.2/iostat.h
--- sysstat-10.1.2.orig/iostat.h 2012-10-03 21:18:22.000000000 +0200
+++ sysstat-10.1.2/iostat.h 2012-11-22 16:09:53.136250283 +0100
@@ -23,7 +23,7 @@
#define I_F_HAS_DISKSTATS 0x00800
#define I_D_HUMAN_READ 0x01000
#define I_D_PERSIST_NAME 0x02000
-/* Unused 0x04000 */
+#define I_D_OMIT_SINCE_BOOT 0x04000
/* Unused 0x08000 */
#define I_D_DEVMAP_NAME 0x10000
#define I_D_ISO 0x20000
@@ -44,6 +44,7 @@
#define HAS_DISKSTATS(m) (((m) & I_F_HAS_DISKSTATS) == I_F_HAS_DISKSTATS)
#define DISPLAY_HUMAN_READ(m) (((m) & I_D_HUMAN_READ) == I_D_HUMAN_READ)
#define DISPLAY_PERSIST_NAME_I(m) (((m) & I_D_PERSIST_NAME) == I_D_PERSIST_NAME)
+#define DISPLAY_OMIT_SINCE_BOOT(m) (((m) & I_D_OMIT_SINCE_BOOT) == I_D_OMIT_SINCE_BOOT)
#define DISPLAY_DEVMAP_NAME(m) (((m) & I_D_DEVMAP_NAME) == I_D_DEVMAP_NAME)
#define DISPLAY_ISO(m) (((m) & I_D_ISO) == I_D_ISO)
#define DISPLAY_GROUP_TOTAL_ONLY(m) (((m) & I_D_GROUP_TOTAL_ONLY) == I_D_GROUP_TOTAL_ONLY)
diff -upr sysstat-10.1.2.orig/man/iostat.in sysstat-10.1.2/man/iostat.in
--- sysstat-10.1.2.orig/man/iostat.in 2012-07-13 21:40:54.000000000 +0200
+++ sysstat-10.1.2/man/iostat.in 2012-11-22 17:53:57.961559688 +0100
@@ -4,7 +4,7 @@ iostat \- Report Central Processing Unit
statistics for devices and partitions.
.SH SYNOPSIS
.ie 'yes'@WITH_DEBUG@' \{
-.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]
+.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
.B [ -j { ID | LABEL | PATH | UUID | ... } ]
.B [ [ -T ] -g
.I group_name
@@ -19,7 +19,7 @@ statistics for devices and partitions.
.B ] ]
.\}
.el \{
-.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -z ]
+.B iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
.B [ -j { ID | LABEL | PATH | UUID | ... } ]
.B [ [ -T ] -g
.I group_name
@@ -47,7 +47,9 @@ the input/output load between physical d
The first report generated by the
.B iostat
command provides statistics
-concerning the time since the system was booted. Each subsequent report
+concerning the time since the system was booted, unless the
+.B -y
+option is used, when this first report is omitted. Each subsequent report
covers the time since the previous report. All statistics are reported
each time the iostat command is run. The report consists of a
CPU header row followed by a row of
@@ -60,7 +62,10 @@ The
.I interval
parameter specifies the amount of time in seconds between
each report. The first report contains statistics for the time since
-system startup (boot). Each subsequent report contains statistics
+system startup (boot), unless the
+.B -y
+option is used, when this report is omitted.
+Each subsequent report contains statistics
collected during the interval since the previous report. The
.I count
parameter can be specified in conjunction with the
@@ -326,6 +331,9 @@ on the value of the S_TIME_FORMAT enviro
Print version number then exit.
.IP -x
Display extended statistics.
+.IP -y
+Omit first report with statistics since the system boot, if displaying multiple
+records in given interval.
.IP -z
Tell iostat to omit output for any devices for which there was no activity
during the sample period.