Blob Blame History Raw
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.