]> granicus.if.org Git - sysstat/commitdiff
sadf: RAW: Add PSI support
authorSebastien GODARD <sysstat@users.noreply.github.com>
Sun, 12 Apr 2020 09:22:04 +0000 (11:22 +0200)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Sun, 12 Apr 2020 09:22:04 +0000 (11:22 +0200)
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
activity.c
raw_stats.c
raw_stats.h

index a09da59a2c3858ef7ca65b0d98d37a17748b446c..d4e70971f80f20452ae106536ff3a8a3a24c3280 100644 (file)
@@ -1898,7 +1898,7 @@ struct activity psi_cpu_act = {
 //FIXME        .f_xml_print    = xml_print_psicpu_stats,
 //FIXME        .f_json_print   = json_print_psicpu_stats,
 //FIXME        .f_svg_print    = svg_print_psicpu_stats,
-//FIXME        .f_raw_print    = raw_print_psicpu_stats,
+       .f_raw_print    = raw_print_psicpu_stats,
 //FIXME        .f_pcp_print    = pcp_print_psicpu_stats,
        .f_count_new    = NULL,
        .item_list      = NULL,
@@ -1944,7 +1944,7 @@ struct activity psi_io_act = {
 //FIXME        .f_xml_print    = xml_print_psiio_stats,
 //FIXME        .f_json_print   = json_print_psiio_stats,
 //FIXME        .f_svg_print    = svg_print_psiio_stats,
-//FIXME        .f_raw_print    = raw_print_psiio_stats,
+       .f_raw_print    = raw_print_psiio_stats,
 //FIXME        .f_pcp_print    = pcp_print_psiio_stats,
        .f_count_new    = NULL,
        .item_list      = NULL,
@@ -1990,7 +1990,7 @@ struct activity psi_mem_act = {
 //FIXME        .f_xml_print    = xml_print_psimem_stats,
 //FIXME        .f_json_print   = json_print_psimem_stats,
 //FIXME        .f_svg_print    = svg_print_psimem_stats,
-//FIXME        .f_raw_print    = raw_print_psimem_stats,
+       .f_raw_print    = raw_print_psimem_stats,
 //FIXME        .f_pcp_print    = pcp_print_psimem_stats,
        .f_count_new    = NULL,
        .item_list      = NULL,
index 6fff547f57b9de5e05a61ca4a565237c202fb115..ec7586c6ee1ee15a8ba9d19cfa1b36430d860fc9 100644 (file)
@@ -1664,3 +1664,87 @@ __print_funct_t raw_print_softnet_stats(struct activity *a, char *timestr, int c
                printf("\n");
        }
 }
+
+/*
+ ***************************************************************************
+ * Display pressure-stall CPU statistics in raw format.
+ *
+ * IN:
+ * @a          Activity structure with statistics.
+ * @timestr    Time for current statistics sample.
+ * @curr       Index in array for current sample statistics.
+ ***************************************************************************
+ */
+__print_funct_t raw_print_psicpu_stats(struct activity *a, char *timestr, int curr)
+{
+       struct stats_psi_cpu
+               *spic = (struct stats_psi_cpu *) a->buf[curr],
+               *spip = (struct stats_psi_cpu *) a->buf[!curr];
+
+       printf("%s; %s; %lu;", timestr, pfield(a->hdr_line, FIRST), spic->some_acpu_10);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_acpu_60);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_acpu_300);
+       printf(" %s", pfield(NULL, 0));
+       pval((unsigned long long) spip->some_cpu_total, (unsigned long long) spic->some_cpu_total);
+       printf("\n");
+}
+
+/*
+ ***************************************************************************
+ * Display pressure-stall I/O statistics in raw format.
+ *
+ * IN:
+ * @a          Activity structure with statistics.
+ * @timestr    Time for current statistics sample.
+ * @curr       Index in array for current sample statistics.
+ ***************************************************************************
+ */
+__print_funct_t raw_print_psiio_stats(struct activity *a, char *timestr, int curr)
+{
+       struct stats_psi_io
+               *spic = (struct stats_psi_io *) a->buf[curr],
+               *spip = (struct stats_psi_io *) a->buf[!curr];
+
+       printf("%s; %s; %lu;", timestr, pfield(a->hdr_line, FIRST), spic->some_aio_10);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_aio_60);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_aio_300);
+       printf(" %s", pfield(NULL, 0));
+       pval((unsigned long long) spip->some_io_total, (unsigned long long) spic->some_io_total);
+
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_aio_10);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_aio_60);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_aio_300);
+       printf(" %s", pfield(NULL, 0));
+       pval((unsigned long long) spip->full_io_total, (unsigned long long) spic->full_io_total);
+       printf("\n");
+}
+
+/*
+ ***************************************************************************
+ * Display pressure-stall mem statistics in raw format.
+ *
+ * IN:
+ * @a          Activity structure with statistics.
+ * @timestr    Time for current statistics sample.
+ * @curr       Index in array for current sample statistics.
+ ***************************************************************************
+ */
+__print_funct_t raw_print_psimem_stats(struct activity *a, char *timestr, int curr)
+{
+       struct stats_psi_mem
+               *spic = (struct stats_psi_mem *) a->buf[curr],
+               *spip = (struct stats_psi_mem *) a->buf[!curr];
+
+       printf("%s; %s; %lu;", timestr, pfield(a->hdr_line, FIRST), spic->some_amem_10);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_amem_60);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->some_amem_300);
+       printf(" %s", pfield(NULL, 0));
+       pval((unsigned long long) spip->some_mem_total, (unsigned long long) spic->some_mem_total);
+
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_amem_10);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_amem_60);
+       printf(" %s; %lu;", pfield(NULL, 0), spic->full_amem_300);
+       printf(" %s", pfield(NULL, 0));
+       pval((unsigned long long) spip->full_mem_total, (unsigned long long) spic->full_mem_total);
+       printf("\n");
+}
index a6520a71f628b599578ef982edb2e57310f49589..7b49046e3a4e4d388c5588e7adddfdfa4659c087 100644 (file)
@@ -92,5 +92,11 @@ __print_funct_t raw_print_fchost_stats
        (struct activity *, char *, int);
 __print_funct_t raw_print_softnet_stats
        (struct activity *, char *, int);
+__print_funct_t raw_print_psicpu_stats
+       (struct activity *, char *, int);
+__print_funct_t raw_print_psiio_stats
+       (struct activity *, char *, int);
+__print_funct_t raw_print_psimem_stats
+       (struct activity *, char *, int);
 
 #endif /* _RAW_STATS_H */