From 3cba36331dd2ebd2fd6e34b63a1ed5036823c256 Mon Sep 17 00:00:00 2001 From: Sebastien GODARD Date: Wed, 12 Jun 2013 21:39:19 +0200 Subject: [PATCH] Collect filesystems stats only when sadc option "-S XDISK" is used 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. (cherry picked from commit 7557dfebffc9e6de26ff7a6b715792dfa5a715c1) --- activity.c | 2 +- man/sadc.in | 4 ++-- man/sar.in | 5 +++-- sa.h | 1 + sadc.c | 14 +++++++++++--- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/activity.c b/activity.c index 734df4a..5b0d4a0 100644 --- a/activity.c +++ b/activity.c @@ -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, diff --git a/man/sadc.in b/man/sadc.in index 9b75754..2e18999 100644 --- a/man/sadc.in +++ b/man/sadc.in @@ -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. diff --git a/man/sar.in b/man/sar.in index 65c89cb..6f96093 100644 --- a/man/sar.in +++ b/man/sar.in @@ -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 50349c8..eb2a426 100644 --- a/sa.h +++ b/sa.h @@ -177,6 +177,7 @@ #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 73c15fa..39c95ee 100644 --- 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])) { -- 2.14.3