tools/tracing/rtla: osnoise_hist: use total duration for average calculation
[ Upstream commit fe137a4fe0e77eb95396cfc5c3dd7df404421aa4 ]
Sampled durations must be weighted by observed quantity, to arrive at a correct
average duration value.
Perform calculation of total duration by summing (duration * count).
Link: https://lkml.kernel.org/r/20230103103400.275566-2-br015@umbiko.net
Fixes: 829a6c0b56 ("rtla/osnoise: Add the hist mode")
Signed-off-by: Andreas Ziegler <br015@umbiko.net>
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
0cd7777c74
commit
f86d50bf19
1 changed files with 4 additions and 1 deletions
|
|
@ -121,6 +121,7 @@ static void osnoise_hist_update_multiple(struct osnoise_tool *tool, int cpu,
|
|||
{
|
||||
struct osnoise_hist_params *params = tool->params;
|
||||
struct osnoise_hist_data *data = tool->data;
|
||||
unsigned long long total_duration;
|
||||
int entries = data->entries;
|
||||
int bucket;
|
||||
int *hist;
|
||||
|
|
@ -131,10 +132,12 @@ static void osnoise_hist_update_multiple(struct osnoise_tool *tool, int cpu,
|
|||
if (data->bucket_size)
|
||||
bucket = duration / data->bucket_size;
|
||||
|
||||
total_duration = duration * count;
|
||||
|
||||
hist = data->hist[cpu].samples;
|
||||
data->hist[cpu].count += count;
|
||||
update_min(&data->hist[cpu].min_sample, &duration);
|
||||
update_sum(&data->hist[cpu].sum_sample, &duration);
|
||||
update_sum(&data->hist[cpu].sum_sample, &total_duration);
|
||||
update_max(&data->hist[cpu].max_sample, &duration);
|
||||
|
||||
if (bucket < entries)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue