Print this page
NEX-3729 KRRP changes mess up iostat(1M)
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-4426 iostat(1M) should be able to handle KSTAT_DATA_STRING
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
*** 126,135 ****
--- 126,137 ----
/* format (-d, -D, -e, -E, -x -X -Y) */
static uint_t do_cpu; /* show cpu info (-c) */
static uint_t do_interval; /* do intervals (-I) */
static int do_partitions; /* per-partition stats (-p) */
static int do_partitions_only; /* per-partition stats only (-P) */
+ static int do_zfs;
+ static int do_zfs_only;
/* no per-device stats for disks */
static uint_t do_conversions; /* display disks as cXtYdZ (-n) */
static uint_t do_megabytes; /* display data in MB/sec (-M) */
static uint_t do_controller; /* display controller info (-C) */
static uint_t do_raw; /* emit raw format (-r) */
*** 151,161 ****
#define SMALL_SCRATCH_BUFLEN MAXNAMELEN
static int iodevs_nl; /* name field width */
#define IODEVS_NL_MIN 6 /* not too thin for "device" */
! #define IODEVS_NL_MAX 24 /* but keep full width under 80 */
static char disk_header[132];
static uint_t dh_len; /* disk header length for centering */
static int lineout; /* data waiting to be printed? */
--- 153,163 ----
#define SMALL_SCRATCH_BUFLEN MAXNAMELEN
static int iodevs_nl; /* name field width */
#define IODEVS_NL_MIN 6 /* not too thin for "device" */
! #define IODEVS_NL_MAX 64 /* but keep full width under 80 */
static char disk_header[132];
static uint_t dh_len; /* disk header length for centering */
static int lineout; /* data waiting to be printed? */
*** 223,233 ****
types |= SNAP_CPUS;
if (do_disk)
types |= SNAP_IODEVS;
! if (do_disk && !do_partitions_only)
df.if_allowed_types |= IODEV_DISK;
if (do_disk & DISK_IOPATH_LI) {
df.if_allowed_types |= IODEV_IOPATH_LTI;
types |= SNAP_IOPATHS_LI;
}
--- 225,235 ----
types |= SNAP_CPUS;
if (do_disk)
types |= SNAP_IODEVS;
! if (do_disk && !do_partitions_only && !do_zfs_only)
df.if_allowed_types |= IODEV_DISK;
if (do_disk & DISK_IOPATH_LI) {
df.if_allowed_types |= IODEV_IOPATH_LTI;
types |= SNAP_IOPATHS_LI;
}
*** 237,246 ****
--- 239,250 ----
}
if (do_disk & DISK_ERROR_MASK)
types |= SNAP_IODEV_ERRORS;
if (do_partitions || do_partitions_only)
df.if_allowed_types |= IODEV_PARTITION;
+ if (do_zfs || do_zfs_only)
+ df.if_allowed_types |= IODEV_ZFS;
if (do_conversions)
types |= SNAP_IODEV_PRETTY;
if (do_devid)
types |= SNAP_IODEV_DEVID;
if (do_controller) {
*** 962,971 ****
--- 966,979 ----
"instead of Kb/sec\n"
"\t\t-n: convert device names to cXdYtZ format\n"
"\t\t-p: report per-partition disk statistics\n"
"\t\t-P: report per-partition disk statistics only,\n"
"\t\t\tno per-device disk statistics\n"
+ "\t\t-f: report ZFS-level statistics for ZFS pool and\n"
+ "\t\t\tindividual vdevs\n"
+ "\t\t-F: report ZFS pool and individual physical vdevs\n"
+ "\t\t\tstatistics only, no per-device statistics\n"
"\t\t-r: Display data in comma separated format\n"
"\t\t-s: Suppress state change messages\n"
"\t\t-T d|u Display a timestamp in date (d) or unix "
"time_t (u)\n"
"\t\t-t: display chars read/written to terminals\n"
*** 1080,1090 ****
int c;
int errflg = 0;
extern char *optarg;
extern int optind;
! while ((c = getopt(argc, argv, "tdDxXYCciIpPnmMeEszrT:l:")) != EOF)
switch (c) {
case 't':
do_tty++;
break;
case 'd':
--- 1088,1098 ----
int c;
int errflg = 0;
extern char *optarg;
extern int optind;
! while ((c = getopt(argc, argv, "tdDxXYCciIpPfFnmMeEszrT:l:")) != EOF)
switch (c) {
case 't':
do_tty++;
break;
case 'd':
*** 1121,1130 ****
--- 1129,1144 ----
do_partitions++;
break;
case 'P':
do_partitions_only++;
break;
+ case 'f':
+ do_zfs++;
+ break;
+ case 'F':
+ do_zfs_only++;
+ break;
case 'n':
do_conversions++;
break;
case 'M':
do_megabytes++;