mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 02:23:16 +00:00
perf lock contention: Fix debug stat if no contention
It should not divide if the total number is 0. Otherwise it'd show NaN in the bad rate output. Also add a whitespace in the "output for debug" message. $ sudo perf lock contention -abv true Looking at the vmlinux_path (8 entries long) symsrc__init: cannot get elf header. Using /proc/kcore for kernel data Using /proc/kallsyms for symbols contended total wait max wait avg wait type caller === output for debug=== bad: 0, total: 0 bad rate: -nan % <------------------------- (here) histogram of events caused bad sequence acquire: 0 acquired: 0 contended: 0 release: 0 Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Hao Luo <haoluo@google.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: bpf@vger.kernel.org Link: https://lore.kernel.org/r/20230327225711.245738-1-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
3195932152
commit
35bf007e2e
@ -1323,10 +1323,10 @@ static void print_bad_events(int bad, int total)
|
||||
for (i = 0; i < BROKEN_MAX; i++)
|
||||
broken += bad_hist[i];
|
||||
|
||||
if (quiet || (broken == 0 && verbose <= 0))
|
||||
if (quiet || total == 0 || (broken == 0 && verbose <= 0))
|
||||
return;
|
||||
|
||||
pr_info("\n=== output for debug===\n\n");
|
||||
pr_info("\n=== output for debug ===\n\n");
|
||||
pr_info("bad: %d, total: %d\n", bad, total);
|
||||
pr_info("bad rate: %.2f %%\n", (double)bad / (double)total * 100);
|
||||
pr_info("histogram of events caused bad sequence\n");
|
||||
|
Loading…
Reference in New Issue
Block a user