[PATCH v5 0/3] libperf: Unify scaling of counters obtained from perf_evsel__read()

From: Shunsuke
Date: Tue Dec 07 2021 - 03:25:11 EST


This patch series unifies the counters that can be obtained from
perf_evsel__read() to "no scaling".
The counter scaling will be done using a function moved from
tools/perf/util.

The first patch move perf_counts_values__scale from tools/perf/util
to tools/lib/perf so that it can be used with libperf.

The second patch removes the scaling process from
perf_mmap__read_self().

The third patch adds a verification test to make sure that it scales
correctly when multiplexed.

---
Previous version at:
https://lore.kernel.org/linux-perf-users/20211129090627.592149-1-nakamura.shun@xxxxxxxxxxx/

Changes in v5:
- Update tools/lib/perf/Documentation/libperf.txt

Changes in v4:
- Modify type s8 to type __s8

Changes in v3:
- Move scaling process from tools/perf/util to tools/lib/perf
- Remove scaling process from perf_mmap__read_self()
- Remove test to verify that no division by zero occurs

Changes in v2:
- Fix not to divide by zero when counter scaling
- Add test to verify that no division by zero occurs


[1] https://github.com/deater/perf_event_tests/blob/master/tests/rdpmc/rdpmc_multiplexing.c


Shunsuke Nakamura (3):
libperf: Move perf_counts_values__scale to tools/lib/perf
libperf: Remove scaling process from perf_mmap__read_self()
libperf tests: Add test_stat_multiplexing test

tools/lib/perf/Documentation/libperf.txt | 2 +
tools/lib/perf/evsel.c | 19 +++
tools/lib/perf/include/perf/evsel.h | 4 +
tools/lib/perf/libperf.map | 1 +
tools/lib/perf/mmap.c | 2 -
tools/lib/perf/tests/test-evlist.c | 157 +++++++++++++++++++++++
tools/perf/util/evsel.c | 19 ---
tools/perf/util/evsel.h | 3 -
8 files changed, 183 insertions(+), 24 deletions(-)

--
2.25.1