Skip to content

Commit

Permalink
sar: Remove %vmeff metric (#343)
Browse files Browse the repository at this point in the history
Remove %vmeff metric displayed by sar -B (paging statistics).
With recent kernels, this metric was wrongly calculated. Decision was
made to remove it as it was more a kernel metric than a system one.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
  • Loading branch information
sysstat committed Aug 19, 2023
1 parent daf40e0 commit 7a78dea
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 70 deletions.
2 changes: 1 addition & 1 deletion activity.c
Expand Up @@ -282,7 +282,7 @@ struct activity paging_act = {
#endif
#if defined(SOURCE_SAR) || defined(SOURCE_SADF)
.hdr_line = "pgpgin/s;pgpgout/s;fault/s;majflt/s;"
"pgfree/s;pgscank/s;pgscand/s;pgsteal/s;%vmeff",
"pgfree/s;pgscank/s;pgscand/s;pgsteal/s",
#endif
.gtypes_nr = {STATS_PAGING_ULL, STATS_PAGING_UL, STATS_PAGING_U},
.ftypes_nr = {0, 0, 0},
Expand Down
10 changes: 2 additions & 8 deletions json_stats.c
Expand Up @@ -449,21 +449,15 @@ __print_funct_t json_print_paging_stats(struct activity *a, int curr, int tab,
"\"pgfree\": %.2f, "
"\"pgscank\": %.2f, "
"\"pgscand\": %.2f, "
"\"pgsteal\": %.2f, "
"\"vmeff-percent\": %.2f}",
"\"pgsteal\": %.2f}",
S_VALUE(spp->pgpgin, spc->pgpgin, itv),
S_VALUE(spp->pgpgout, spc->pgpgout, itv),
S_VALUE(spp->pgfault, spc->pgfault, itv),
S_VALUE(spp->pgmajfault, spc->pgmajfault, itv),
S_VALUE(spp->pgfree, spc->pgfree, itv),
S_VALUE(spp->pgscan_kswapd, spc->pgscan_kswapd, itv),
S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv),
S_VALUE(spp->pgsteal, spc->pgsteal, itv),
(spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) ?
SP_VALUE(spp->pgsteal, spc->pgsteal,
spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) : 0.0);
S_VALUE(spp->pgsteal, spc->pgsteal, itv));
}

/*
Expand Down
19 changes: 2 additions & 17 deletions pr_stats.c
Expand Up @@ -686,19 +686,11 @@ __print_funct_t print_paging_stats(struct activity *a, int prev, int curr,
/* Save min and max values */
save_extrema(a->gtypes_nr, (void *) spc, (void *) spp,
itv, a->spmin, a->spmax, g_fields);
/* Save min and max values for %vmeff */
save_minmax(a, 8,
(spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) ?
SP_VALUE(spp->pgsteal, spc->pgsteal,
spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct)
: 0.0);
}
else {
/* Print min and max values */
print_paging_xstats(H_MIN, a->spmin);
print_paging_xstats(H_MAX, a->spmax);
print_genf_xstats(H_MIN, a->xnr, a->spmin);
print_genf_xstats(H_MAX, a->xnr, a->spmax);
}
}

Expand All @@ -712,13 +704,6 @@ __print_funct_t print_paging_stats(struct activity *a, int prev, int curr,
S_VALUE(spp->pgscan_kswapd, spc->pgscan_kswapd, itv),
S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv),
S_VALUE(spp->pgsteal, spc->pgsteal, itv));
cprintf_xpc(DISPLAY_UNIT(flags), XLOW0, 1, 9, 2,
(spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) ?
SP_VALUE(spp->pgsteal, spc->pgsteal,
spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct)
: 0.0);
printf("\n");
}

Expand Down
22 changes: 0 additions & 22 deletions pr_xstats.c
Expand Up @@ -161,28 +161,6 @@ void print_irq_xstats(int ismax, struct activity *a, int curr, int irq, char *na
printf("\n");
}

/*
* **************************************************************************
* Display min or max values for paging statistics.
*
* IN:
* @ismax TRUE: Display max header - FALSE: Display min header.
* @spextr Pointer on array with min or max values.
***************************************************************************
*/
void print_paging_xstats(int ismax, double *spextr)
{
/* Print min / max header */
print_minmax(ismax);

cprintf_f(NO_UNIT, FALSE, 8, 9, 2,
*spextr, *(spextr + 1), *(spextr + 2), *(spextr + 3),
*(spextr + 4), *(spextr + 5), *(spextr + 6), *(spextr + 7));
cprintf_xpc(DISPLAY_UNIT(flags), XLOW0, 1, 9, 2, *(spextr + 8));

printf("\n");
}

/*
* **************************************************************************
* Display min or max values for RAM memory utilization.
Expand Down
2 changes: 0 additions & 2 deletions pr_xstats.h
Expand Up @@ -22,8 +22,6 @@ void print_genu64_xstats
(int, int, double *);
void print_irq_xstats
(int, struct activity *, int, int, char *, unsigned char [], double *);
void print_paging_xstats
(int, double *);
void print_ram_memory_xstats
(int, double *, int, int);
void print_swap_memory_xstats
Expand Down
2 changes: 1 addition & 1 deletion rd_stats.h
Expand Up @@ -193,7 +193,7 @@ struct stats_paging {
#define STATS_PAGING_ULL 0
#define STATS_PAGING_UL 8
#define STATS_PAGING_U 0
#define STATS_PAGING_XNR 9
#define STATS_PAGING_XNR 8

/* Structure for I/O and transfer rate statistics */
struct stats_io {
Expand Down
12 changes: 1 addition & 11 deletions rndr_stats.c
Expand Up @@ -697,21 +697,11 @@ __print_funct_t render_paging_stats(struct activity *a, int isdb, char *pre,
S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv),
NULL);

render(isdb, pre, PT_NOFLAG,
render(isdb, pre, pt_newlin,
"-\tpgsteal/s", NULL, NULL,
NOVAL,
S_VALUE(spp->pgsteal, spc->pgsteal, itv),
NULL);

render(isdb, pre, pt_newlin,
"-\t%vmeff", NULL, NULL,
NOVAL,
(spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) ?
SP_VALUE(spp->pgsteal, spc->pgsteal,
spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) : 0.0,
NULL);
}

/*
Expand Down
10 changes: 2 additions & 8 deletions xml_stats.c
Expand Up @@ -428,21 +428,15 @@ __print_funct_t xml_print_paging_stats(struct activity *a, int curr, int tab,
"pgfree=\"%.2f\" "
"pgscank=\"%.2f\" "
"pgscand=\"%.2f\" "
"pgsteal=\"%.2f\" "
"vmeff-percent=\"%.2f\"/>",
"pgsteal=\"%.2f\"/>",
S_VALUE(spp->pgpgin, spc->pgpgin, itv),
S_VALUE(spp->pgpgout, spc->pgpgout, itv),
S_VALUE(spp->pgfault, spc->pgfault, itv),
S_VALUE(spp->pgmajfault, spc->pgmajfault, itv),
S_VALUE(spp->pgfree, spc->pgfree, itv),
S_VALUE(spp->pgscan_kswapd, spc->pgscan_kswapd, itv),
S_VALUE(spp->pgscan_direct, spc->pgscan_direct, itv),
S_VALUE(spp->pgsteal, spc->pgsteal, itv),
(spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) ?
SP_VALUE(spp->pgsteal, spc->pgsteal,
spc->pgscan_kswapd + spc->pgscan_direct -
spp->pgscan_kswapd - spp->pgscan_direct) : 0.0);
S_VALUE(spp->pgsteal, spc->pgsteal, itv));
}

/*
Expand Down

0 comments on commit 7a78dea

Please sign in to comment.