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
@ -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…
Reference in New Issue
Block a user