Date: Mon, 11 Jul 2011 16:41:37 +0000 From: oleksandr@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r224129 - soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat Message-ID: <20110711164137.C23DF106566B@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: oleksandr Date: Mon Jul 11 16:41:37 2011 New Revision: 224129 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224129 Log: Add to iostat option -E to show device error 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 Mon Jul 11 14:15:27 2011 (r224128) +++ soc2011/oleksandr/oleksandr-head/head/usr.sbin/iostat/iostat.c Mon Jul 11 16:41:37 2011 (r224129) @@ -100,6 +100,7 @@ #include <sys/errno.h> #include <sys/resource.h> #include <sys/sysctl.h> +#include <sys/devicestat.h> #include <err.h> #include <ctype.h> @@ -136,7 +137,7 @@ volatile sig_atomic_t wresized; /* Tty resized, when non-zero. */ unsigned short wrows; /* Current number of tty rows. */ int dflag = 0, Iflag = 0, Cflag = 0, Tflag = 0, oflag = 0, Kflag = 0; -int xflag = 0, zflag = 0; +int xflag = 0, zflag = 0, Eflag = 0; /* local function declarations */ static void usage(void); @@ -158,7 +159,7 @@ * This isn't mentioned in the man page, or the usage statement, * but it is supported. */ - fprintf(stderr, "usage: iostat [-CdhIKoTxz?] [-c count] [-M core]" + fprintf(stderr, "usage: iostat [-CdEhIKoTxz?] [-c count] [-M core]" " [-n devs] [-N system]\n" "\t [-t type,if,pass] [-w wait] [drives]\n"); } @@ -200,6 +201,9 @@ case 'd': dflag++; break; + case 'E': + Eflag++; + break; case 'h': hflag++; break; @@ -758,7 +762,13 @@ printf("us ni sy in id "); printf("\n"); } - + if (Eflag>0) { + printf(" error device statistics "); + printf( + "device retrable non_retrible " + ); + printf("\n"); + } for (dn = 0; dn < num_devices; dn++) { int di; @@ -804,6 +814,17 @@ block_size : 512) / 1024; } + if (Eflag > 0) { + if (asprintf(&devname, "%s%d", + 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"); + free(devname); + } if (xflag > 0) { if (asprintf(&devname, "%s%d", cur.dinfo->devices[di].device_name,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110711164137.C23DF106566B>