]> granicus.if.org Git - sysstat/commitdiff
Collect filesystems stats only when sadc option "-S XDISK" is used
authorSebastien GODARD <sysstat@orange.fr.fake>
Wed, 12 Jun 2013 19:39:19 +0000 (21:39 +0200)
committerSebastien GODARD <sysstat@orange.fr.fake>
Wed, 12 Jun 2013 19:39:19 +0000 (21:39 +0200)
Make sadc collect filesystems statistics (those displayed by sar option
-F) only when option "-S XDISK" is used.
Filesystems are actually closer to partitions than to disks. So it makes
more sense for sadc to collect them when option "-S XDISK" is used
rather than option "-S DISK".
Update sadc and sar manual pages to reflect the change.

activity.c
man/sadc.in
man/sar.in
sa.h
sadc.c

index 44b51c97ca8ab72675b1aaaa9fda37bcbee0bf59..2f9bc43a3224521ae171fe705f402768c902a272 100644 (file)
@@ -1200,7 +1200,7 @@ struct activity filesystem_act = {
        .id             = A_FILESYSTEM,
        .options        = AO_NULL,
        .magic          = ACTIVITY_MAGIC_BASE,
-       .group          = G_DISK,
+       .group          = G_XDISK,
 #ifdef SOURCE_SADC
        .f_count        = wrap_get_filesystem_nr,
        .f_count2       = NULL,
index 9b7575429cef00f652286f7bb0a06c77a1f8fc64..2e18999f6526b8dbf01398578b316fa066f2eabe 100644 (file)
@@ -1,4 +1,4 @@
-.TH SADC 8 "JULY 2012" Linux "Linux User's Manual" -*- nroff -*-
+.TH SADC 8 "JUNE 2013" Linux "Linux User's Manual" -*- nroff -*-
 .SH NAME
 sadc \- System activity data collector.
 .SH SYNOPSIS
@@ -138,7 +138,7 @@ The
 .B XDISK
 keyword is an extension to the
 .B DISK
-one and indicates that partition statistics should be collected by
+one and indicates that partitions and filesystems statistics should be collected by
 .B sadc
 in addition to disk statistics. This option works only with kernels 2.6.25
 and later.
index 43e8353723a4447a02d2a214d65ca8e96496ede5..92e5bbdd747980f03ef25649d9d0c27fcf9aa30e 100644 (file)
@@ -1,4 +1,4 @@
-.TH SAR 1 "MAY 2013" Linux "Linux User's Manual" -*- nroff -*-
+.TH SAR 1 "JUNE 2013" Linux "Linux User's Manual" -*- nroff -*-
 .SH NAME
 sar \- Collect, report, or save system activity information.
 .SH SYNOPSIS
@@ -324,8 +324,9 @@ or
 Display statistics for currently mounted filesystems. Pseudo-filesystems are
 ignored. At the end of the report,
 .B sar
-will display a summary of all those filesystems. The following values are
-displayed:
+will display a summary of all those filesystems.
+Note that filesystems statistics depend on sadc option "-S XDISK" to be collected.
+The following values are displayed:
 
 .B MBfsfree
 .RS
diff --git a/sa.h b/sa.h
index d6c34efd81aaa286027e23cd388d4d3960d8a166..d13be4c287f5bc5e3eccf82cb2bbcb533175f13c 100644 (file)
--- a/sa.h
+++ b/sa.h
 #define G_SNMP         0x04
 #define G_IPV6         0x08
 #define G_POWER                0x10
+#define G_XDISK                0x20
 
 /* sadc program */
 #define SADC           "sadc"
diff --git a/sadc.c b/sadc.c
index fb3254d07719cc28913e00b133a2e1cd911e43ad..0a1e7b86d01ca710441f2cb77331607747127901 100644 (file)
--- a/sadc.c
+++ b/sadc.c
@@ -137,8 +137,8 @@ void parse_sadc_S_option(char *argv[], int opt)
                        collect_group_activities(G_DISK, AO_F_NULL);
                }
                else if (!strcmp(p, K_XDISK)) {
-                       /* Select group of disk and partition activities */
-                       collect_group_activities(G_DISK, AO_F_DISK_PART);
+                       /* Select group of disk and partition/filesystem activities */
+                       collect_group_activities(G_DISK + G_XDISK, AO_F_DISK_PART);
                }
                else if (!strcmp(p, K_SNMP)) {
                        /* Select group of SNMP activities */
@@ -155,11 +155,19 @@ void parse_sadc_S_option(char *argv[], int opt)
                else if (!strcmp(p, K_ALL) || !strcmp(p, K_XALL)) {
                        /* Select all activities */
                        for (i = 0; i < NR_ACT; i++) {
+
+                               if (!strcmp(p, K_ALL) && (act[i]->group & G_XDISK))
+                                       /*
+                                        * Don't select G_XDISK activities
+                                        * when option -S ALL is used.
+                                        */
+                                       continue;
+
                                act[i]->options |= AO_COLLECTED;
                        }
                        if (!strcmp(p, K_XALL)) {
                                /* Tell sadc to also collect partition statistics */
-                               collect_group_activities(G_DISK, AO_F_DISK_PART);
+                               collect_group_activities(G_DISK + G_XDISK, AO_F_DISK_PART);
                        }
                }
                else if (strspn(argv[opt], DIGITS) == strlen(argv[opt])) {