socsvn commit: r224267 - soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat

oleksandr at FreeBSD.org oleksandr at FreeBSD.org
Fri Jul 15 11:16:00 UTC 2011


Author: oleksandr
Date: Fri Jul 15 11:15:57 2011
New Revision: 224267
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224267

Log:
  Add new type of error: read and write

Modified:
  soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat/iostat.c

Modified: soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat/iostat.c
==============================================================================
--- soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat/iostat.c	Fri Jul 15 10:54:43 2011	(r224266)
+++ soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat/iostat.c	Fri Jul 15 11:15:57 2011	(r224267)
@@ -187,7 +187,7 @@
 	matches = NULL;
 	maxshowdevs = 3;
 
-	while ((c = getopt(argc, argv, "c:CdhIKM:n:N:ot:Tw:xz?")) != -1) {
+	while ((c = getopt(argc, argv, "c:CdEhIKM:n:N:ot:Tw:xz?")) != -1) {
 		switch(c) {
 			case 'c':
 				cflag++;
@@ -283,7 +283,7 @@
 	 * Make sure Tflag and/or Cflag are set if dflag == 0.  If dflag is
 	 * greater than 0, they may be 0 or non-zero.
 	 */
-	if (dflag == 0 && xflag == 0) {
+	if (dflag == 0 && xflag == 0 && Eflag == 0) {
 		Cflag = 1;
 		Tflag = 1;
 	}
@@ -296,8 +296,8 @@
 	 * Figure out how many devices we should display.
 	 */
 	if (nflag == 0) {
-		if (xflag > 0)
-			maxshowdevs = num_devices;
+		if (xflag > 0 || Eflag > 0)
+			maxshowdevs = num_devices; 
 		else if (oflag > 0) {
 			if ((dflag > 0) && (Cflag == 0) && (Tflag == 0))
 				maxshowdevs = 5;
@@ -594,7 +594,7 @@
 
 		devstats(hflag, etime, havelast);
 
-		if (xflag == 0) {
+		if (xflag == 0 && Eflag == 0 ) {
 			if (Cflag > 0)
 				cpustats();
 
@@ -673,7 +673,7 @@
 	 * If xflag is set, we need a per-loop header, not a page header, so
 	 * just return.  We'll print the header in devstats().
 	 */
-	if (xflag > 0)
+	if (xflag > 0 || Eflag > 0)
 		return;
 
 	if (Tflag > 0)
@@ -763,9 +763,8 @@
 		printf("\n");
 	}
         if (Eflag>0) {
-		printf("                        error device statistics  ");
-		printf(
-		"device     retrable   non_retrible "
+		printf("                    error device statistics\n");
+		printf("device  retriable  non-retriable read error   write error"
 			    );
 		printf("\n");
         }
@@ -819,10 +818,12 @@
 			    cur.dinfo->devices[di].device_name,
 			    cur.dinfo->devices[di].unit_number) == -1)
 				err(1, "asprintf");
-			printf("%-8.8s %d %d ",
-		    devname,cur.dinfo->devices[di].dev_error.retriable,
-			    cur.dinfo->devices[di].dev_error.non_retriable);
-				printf("\n");
+			printf("%-8.8s %-12d %-12d %-12d %-12d",
+       		            devname, cur.dinfo->devices[di].dev_error.retriable,
+			    cur.dinfo->devices[di].dev_error.non_retriable,
+			    cur.dinfo->devices[di].dev_error.read_error,
+			    cur.dinfo->devices[di].dev_error.write_error);
+			printf("\n");
 			free(devname);
 	        }		
 		if (xflag > 0) {
@@ -889,7 +890,7 @@
 				       total_transfers,
 				       msdig,
 				       ms_per_transaction);
-		} else {
+		} else if ( Eflag == 0) {
 			if (Iflag == 0)
 				printf(" %5.2Lf %3.0Lf %5.2Lf ",
 				       kb_per_transfer,


More information about the svn-soc-all mailing list