]> granicus.if.org Git - sysstat/commitdiff
nfsiostat now takes into account POSIXLY_CORRECT environment variable.
authorSebastien Godard <sysstat@orange.fr>
Tue, 7 Dec 2010 10:05:35 +0000 (11:05 +0100)
committerSebastien Godard <sysstat@orange.fr>
Tue, 7 Dec 2010 10:05:35 +0000 (11:05 +0100)
nfsiostat default output is now expressed in kB/s,
unless the variable POSIXLY_CORRECT is set (in which case
the output is expressed in blocks/s).

CHANGES
man/nfsiostat.1
nfsiostat.c
nfsiostat.h

diff --git a/CHANGES b/CHANGES
index 2b8f07d3498013bacff9da09ae2ade8a479aa080..9b97825503285f822c5873df5d4a7e2ccee0b5f4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,10 @@ xxxx/xx/xx: Version 9.1.7 - Sebastien Godard (sysstat <at> orange.fr)
        * Fixed bogus CPU statistics output, which happened when
          CPU user value from /proc/stat wasn't incremented whereas
          CPU guest value was.
+       * nfsiostat now takes into account POSIXLY_CORRECT environment
+         variable. nfsiostat default output is expressed in kB/s,
+         unless this variable is set (in which case the output is
+         expressed in blocks/s).
        * sar manual page updated.
        * Code cleaned.
 
index ec667ba5c1a5bd6f3ebb89a1c1e4ab995b08cc69..d5ca985236331eee79d7d78e755a176ce15eb4fd 100644 (file)
@@ -1,4 +1,4 @@
-.TH NFSIOSTAT 1 "JULY 2010" Linux "Linux User's Manual" -*- nroff -*-
+.TH NFSIOSTAT 1 "DECEMBER 2010" Linux "Linux User's Manual" -*- nroff -*-
 .SH NAME
 nfsiostat \- Report input/output statistics for network filesystems (NFS).
 .SH SYNOPSIS
@@ -41,6 +41,8 @@ command generates reports continuously.
 
 .SH REPORT
 The Network Filesystem (NFS) report provides statistics for each mounted network filesystem.
+Transfer rates are shown in 1K blocks by default, unless the environment
+variable POSIXLY_CORRECT is set, in which case 512-byte blocks are used.
 The report shows the following fields:
 
 .B Filesystem:
@@ -132,6 +134,10 @@ command will use the ISO 8601 format (YYYY-MM-DD) instead.
 The timestamp displayed with option -t will also be compliant with ISO 8601
 format.
 
+.IP POSIXLY_CORRECT
+When this variable is set, transfer rates are shown in 512-byte blocks instead
+of the default 1K blocks.
+
 .SH BUG
 .I /proc
 filesystem must be mounted for
index 05a7dfa2b7cc4638a377749f80476455a4541d29..f9efdbbc5aabc401d7f659fd6aa552c115425067 100644 (file)
@@ -73,6 +73,27 @@ void usage(char *progname)
        exit(1);
 }
 
+/*
+ ***************************************************************************
+ * Set output unit. Unit will be kB/s unless POSIXLY_CORRECT
+ * environment variable has been set, in which case the output will be
+ * expressed in blocks/s.
+ ***************************************************************************
+ */
+void set_output_unit(void)
+{
+       char *e;
+
+       if (DISPLAY_KILOBYTES(flags) || DISPLAY_MEGABYTES(flags))
+               return;
+
+       /* Check POSIXLY_CORRECT environment variable */
+       if ((e = getenv(ENV_POSIXLY_CORRECT)) == NULL) {
+               /* Variable not set: Unit is kB/s and not blocks/s */
+               flags |= I_D_KILOBYTES;
+       }
+}
+
 /*
  ***************************************************************************
  * SIGALRM signal handler.
@@ -627,6 +648,9 @@ int main(int argc, char **argv)
                count = 1;
        }
 
+       /* Select output unit (kB/s or blocks/s) */
+       set_output_unit();
+
        /* Init structures according to machine architecture */
        io_sys_init();
 
index 6315e89829418feeeedaf88acad88625767739a7..d08f40b3ed3d96438b04bff61e7918e3cb69b5d7 100644 (file)
@@ -24,6 +24,9 @@
 #define DISPLAY_ISO(m)         (((m) & I_D_ISO)           == I_D_ISO)
 #define DISPLAY_HUMAN_READ(m)  (((m) & I_D_HUMAN_READ)    == I_D_HUMAN_READ)
 
+/* Environment variable */
+#define ENV_POSIXLY_CORRECT    "POSIXLY_CORRECT"
+
 /* Preallocation constats */
 #define NR_NFS_PREALLOC        2