mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
perf intel-tpebs: Use stats for retirement latency statistics
struct stats provides access to mean, min and max. It also provides uniformity with statistics code used elsewhere in perf. Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Weilin Wang <weilin.wang@intel.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com> Cc: Andreas Färber <afaerber@suse.de> Cc: Caleb Biggers <caleb.biggers@intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Perry Taylor <perry.taylor@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Falcon <thomas.falcon@intel.com> Link: https://lore.kernel.org/r/20250414174134.3095492-14-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
1ddf95f6d8
commit
3533b56d22
|
|
@ -18,6 +18,7 @@
|
|||
#include "evsel.h"
|
||||
#include "mutex.h"
|
||||
#include "session.h"
|
||||
#include "stat.h"
|
||||
#include "tool.h"
|
||||
#include "cpumap.h"
|
||||
#include "metricgroup.h"
|
||||
|
|
@ -42,12 +43,8 @@ struct tpebs_retire_lat {
|
|||
struct evsel *evsel;
|
||||
/** @event: Event passed to perf record. */
|
||||
char *event;
|
||||
/* Count of retire_latency values found in sample data */
|
||||
size_t count;
|
||||
/* Sum of all the retire_latency values in sample data */
|
||||
int sum;
|
||||
/* Average of retire_latency, val = sum / count */
|
||||
double val;
|
||||
/** @stats: Recorded retirement latency stats. */
|
||||
struct stats stats;
|
||||
/* Has the event been sent to perf record? */
|
||||
bool started;
|
||||
};
|
||||
|
|
@ -145,9 +142,7 @@ static int process_sample_event(const struct perf_tool *tool __maybe_unused,
|
|||
* latency value will be used. Save the number of samples and the sum of
|
||||
* retire latency value for each event.
|
||||
*/
|
||||
t->count += 1;
|
||||
t->sum += sample->retire_lat;
|
||||
t->val = (double) t->sum / t->count;
|
||||
update_stats(&t->stats, sample->retire_lat);
|
||||
mutex_unlock(tpebs_mtx_get());
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -522,7 +517,7 @@ int evsel__tpebs_read(struct evsel *evsel, int cpu_map_idx, int thread)
|
|||
return ret;
|
||||
mutex_lock(tpebs_mtx_get());
|
||||
}
|
||||
val = rint(t->val);
|
||||
val = rint(t->stats.mean);
|
||||
mutex_unlock(tpebs_mtx_get());
|
||||
|
||||
if (old_count) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user