From: Sebastien GODARD Date: Fri, 11 Feb 2022 10:21:30 +0000 (+0100) Subject: A_IRQ: sadf: Display 0.00 when number of interrupts decreases X-Git-Tag: v12.5.6~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=71b794df0138586088f6c1047f71f12773fb39b4;p=sysstat A_IRQ: sadf: Display 0.00 when number of interrupts decreases See commit 5c15058. Signed-off-by: Sebastien GODARD --- diff --git a/json_stats.c b/json_stats.c index cb139ea..5b989ea 100644 --- a/json_stats.c +++ b/json_stats.c @@ -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 { diff --git a/rndr_stats.c b/rndr_stats.c index 34a78b9..e7ea015 100644 --- a/rndr_stats.c +++ b/rndr_stats.c @@ -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); } } diff --git a/xml_stats.c b/xml_stats.c index 2480fdd..a01a12d 100644 --- a/xml_stats.c +++ b/xml_stats.c @@ -361,6 +361,7 @@ __print_funct_t xml_print_irq_stats(struct activity *a, int curr, int tab, if (!c) { xprintf(tab, "", 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 {