mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
rtla/osnoise: Better report when histogram is empty
When osnoise hist does not observe any samples above the threshold, no entries are recorded and the final report shows empty entries for the usual statistics (count, min, max, avg): [~]# osnoise hist -d 5s -T 500 # RTLA osnoise histogram # Time unit is microseconds (us) # Duration: 0 00:00:05 Index over: count: min: avg: max: That could lead users to confusing interpretations of the results. A simple solution is to report 0 for count and the statistics, making it clear that no noise (above the defined threshold) was observed: [~]# osnoise hist -d 5s -T 500 # RTLA osnoise histogram # Time unit is microseconds (us) # Duration: 0 00:00:05 Index over: 0 count: 0 min: 0 avg: 0 max: 0 Link: https://lkml.kernel.org/r/Zml6JmH5cbS7-HfZ@uudg.org Cc: Daniel Bristot de Oliveira <bristot@kernel.org> Cc: John Kacur <jkacur@redhat.com> Cc: Clark Williams <williams@redhat.com> Reviewed-by: John Kacur <jkacur@redhat.com> Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com> Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
This commit is contained in:
parent
59237b0c96
commit
587f05a88b
@ -374,6 +374,7 @@ osnoise_print_stats(struct osnoise_hist_params *params, struct osnoise_tool *too
|
||||
{
|
||||
struct osnoise_hist_data *data = tool->data;
|
||||
struct trace_instance *trace = &tool->trace;
|
||||
int has_samples = 0;
|
||||
int bucket, cpu;
|
||||
int total;
|
||||
|
||||
@ -402,11 +403,25 @@ osnoise_print_stats(struct osnoise_hist_params *params, struct osnoise_tool *too
|
||||
continue;
|
||||
}
|
||||
|
||||
/* There are samples above the threshold */
|
||||
has_samples = 1;
|
||||
trace_seq_printf(trace->seq, "\n");
|
||||
trace_seq_do_printf(trace->seq);
|
||||
trace_seq_reset(trace->seq);
|
||||
}
|
||||
|
||||
/*
|
||||
* If no samples were recorded, skip calculations, print zeroed statistics
|
||||
* and return.
|
||||
*/
|
||||
if (!has_samples) {
|
||||
trace_seq_reset(trace->seq);
|
||||
trace_seq_printf(trace->seq, "over: 0\ncount: 0\nmin: 0\navg: 0\nmax: 0\n");
|
||||
trace_seq_do_printf(trace->seq);
|
||||
trace_seq_reset(trace->seq);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!params->no_index)
|
||||
trace_seq_printf(trace->seq, "over: ");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user