]> granicus.if.org Git - sysstat/commitdiff
A_IRQ: sadf: Display 0.00 when number of interrupts decreases
authorSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 11 Feb 2022 10:21:30 +0000 (11:21 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 11 Feb 2022 10:21:30 +0000 (11:21 +0100)
See commit 5c15058.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
json_stats.c
rndr_stats.c
xml_stats.c

index cb139ea6d610ec425126c75e9d83a979633aef4f..5b989eaee9c6747cc1f0316e5382e3e866454e10 100644 (file)
@@ -376,6 +376,7 @@ __print_funct_t json_print_irq_stats(struct activity *a, int curr, int tab,
                        /* Yes: Display it */
                        if (!c) {
                                printf(", \"all\": %.2f",
+                                      (stc_cpu_irq->irq_nr < stp_cpu_irq->irq_nr) ? 0.0 :
                                       S_VALUE(stp_cpu_irq->irq_nr, stc_cpu_irq->irq_nr, itv));
                        }
                        else {
index 34a78b9d8588f44dd0f74caf285d124326999685..e7ea0150423e14ec229b0a7442fe5027e77710ee 100644 (file)
@@ -521,6 +521,7 @@ __print_funct_t render_irq_stats(struct activity *a, int isdb, char *pre,
        struct stats_irq *stc_cpu_irq, *stp_cpu_irq, *stc_cpuall_irq;
        unsigned char masked_cpu_bitmap[BITMAP_SIZE(NR_CPUS)] = {0};
        char cpu_name[32], ppc_txt[512];
+       double dval;
 
        /* @nr[curr] cannot normally be greater than @nr_ini */
        if (a->nr[curr] > a->nr_ini) {
@@ -554,12 +555,20 @@ __print_funct_t render_irq_stats(struct activity *a, int isdb, char *pre,
                                /* No */
                                continue;
 
+                       /* Compute value to be displayed */
+                       dval = S_VALUE(stp_cpu_irq->irq_nr, stc_cpu_irq->irq_nr, itv);
+
                        /* Yes: Display it */
                        if (!c) {
                                strcpy(cpu_name, "all");
+
+                               /* If number of int has decreased for CPU "all" then display 0.00 */
+                               if (stc_cpu_irq->irq_nr < stp_cpu_irq->irq_nr) {
+                                       dval = 0.0;
+                               }
                        }
                        else {
-                               snprintf(cpu_name, sizeof(cpu_name), "CPU%d", c - 1);
+                               snprintf(cpu_name, sizeof(cpu_name), "cpu%d", c - 1);
                                cpu_name[sizeof(cpu_name) - 1] = '\0';
                        }
                        snprintf(ppc_txt, sizeof(ppc_txt), "%s\t%s", stc_cpuall_irq->irq_name, cpu_name);
@@ -571,7 +580,7 @@ __print_funct_t render_irq_stats(struct activity *a, int isdb, char *pre,
                                       isdb ? cons(sv, stc_cpuall_irq->irq_name, NULL)
                                            : cons(sv, ppc_txt, NULL),
                                       NOVAL,
-                                      S_VALUE(stp_cpu_irq->irq_nr, stc_cpu_irq->irq_nr, itv),
+                                      dval,
                                       NULL);
                                first = FALSE;
                        }
@@ -580,7 +589,7 @@ __print_funct_t render_irq_stats(struct activity *a, int isdb, char *pre,
                                       "%s", NULL,
                                       cons(sv, ppc_txt, NULL),
                                       NOVAL,
-                                      S_VALUE(stp_cpu_irq->irq_nr, stc_cpu_irq->irq_nr, itv),
+                                      dval,
                                       NULL);
                        }
                }
index 2480fdda2524e99014e40375b8ce4378d1016eff..a01a12d57df4e68f61e0c5867b2f32b845c91189 100644 (file)
@@ -361,6 +361,7 @@ __print_funct_t xml_print_irq_stats(struct activity *a, int curr, int tab,
                        if (!c) {
                                xprintf(tab, "<irq intr=\"%s\" cpu=\"all\" value=\"%.2f\"/>",
                                        stc_cpuall_irq->irq_name,
+                                       (stc_cpu_irq->irq_nr < stp_cpu_irq->irq_nr) ? 0.0 :
                                        S_VALUE(stp_cpu_irq->irq_nr, stc_cpu_irq->irq_nr, itv));
                        }
                        else {