> -----Original Message----- > From: Tomasz Duszynski <tduszyn...@marvell.com> > Sent: Friday, February 17, 2023 1:55 AM > To: dev@dpdk.org > Cc: roret...@linux.microsoft.com; Ruifeng Wang <ruifeng.w...@arm.com>; > bruce.richard...@intel.com; jer...@marvell.com; mattias.ronnb...@ericsson.com; > m...@smartsharesystems.com; tho...@monjalon.net; zhou...@loongson.cn; > david.march...@redhat.com; Tomasz Duszynski <tduszyn...@marvell.com> > Subject: [PATCH v11 0/4] add support for self monitoring > > This series adds self monitoring support i.e allows to configure and read > performance > measurement unit (PMU) counters in runtime without using perf utility. This > has certain > advantages when application runs on isolated cores running dedicated tasks. > > Events can be read directly using rte_pmu_read() or using dedicated tracepoint > rte_eal_trace_pmu_read(). The latter will cause events to be stored inside > CTF file. > > By design, all enabled events are grouped together and the same group is > attached to > lcores that use self monitoring funtionality. > > Events are enabled by names, which need to be read from standard location > under sysfs i.e > > /sys/bus/event_source/devices/PMU/events > > where PMU is a core pmu i.e one measuring cpu events. As of today raw events > are not > supported. > > v11: > - skip fast test in case init fails > v10: > - check permissions before using counters > - do not use internal symbols in exported functions > - address review comments > v9: > - fix 'maybe-uninitialized' warning reported by CI > v8: > - just rebase series > v7: > - use per-lcore event group instead of global table index by lcore-id > - don't add pmu_autotest to fast tests because due to lack of suported on > every arch > v6: > - move codebase to the separate library > - address review comments > v5: > - address review comments > - fix sign extension while reading pmu on x86 > - fix regex mentioned in doc > - various minor changes/improvements here and there > v4: > - fix freeing mem detected by debug_autotest > v3: > - fix shared build > v2: > - fix problems reported by test build infra > > Tomasz Duszynski (4): > lib: add generic support for reading PMU events > pmu: support reading ARM PMU events in runtime > pmu: support reading Intel x86_64 PMU events in runtime > eal: add PMU support to tracing library > > MAINTAINERS | 5 + > app/test/meson.build | 2 + > app/test/test_pmu.c | 68 +++ > app/test/test_trace_perf.c | 10 + > doc/api/doxy-api-index.md | 3 +- > doc/api/doxy-api.conf.in | 1 + > doc/guides/prog_guide/profile_app.rst | 17 + > doc/guides/prog_guide/trace_lib.rst | 32 ++ > doc/guides/rel_notes/release_23_03.rst | 7 + > lib/eal/common/eal_common_trace.c | 13 +- > lib/eal/common/eal_common_trace_points.c | 5 + > lib/eal/include/rte_eal_trace.h | 13 + > lib/eal/meson.build | 3 + > lib/eal/version.map | 1 + > lib/meson.build | 1 + > lib/pmu/meson.build | 21 + > lib/pmu/pmu_arm64.c | 94 ++++ > lib/pmu/pmu_private.h | 32 ++ > lib/pmu/rte_pmu.c | 521 +++++++++++++++++++++++ > lib/pmu/rte_pmu.h | 232 ++++++++++ > lib/pmu/rte_pmu_pmc_arm64.h | 30 ++ > lib/pmu/rte_pmu_pmc_x86_64.h | 24 ++ > lib/pmu/version.map | 16 + > 23 files changed, 1149 insertions(+), 2 deletions(-) create mode 100644 > app/test/test_pmu.c create mode 100644 lib/pmu/meson.build create mode > 100644 > lib/pmu/pmu_arm64.c create mode 100644 lib/pmu/pmu_private.h create mode > 100644 > lib/pmu/rte_pmu.c create mode 100644 lib/pmu/rte_pmu.h create mode 100644 > lib/pmu/rte_pmu_pmc_arm64.h create mode 100644 lib/pmu/rte_pmu_pmc_x86_64.h > create mode > 100644 lib/pmu/version.map > > -- > 2.34.1
For the series, Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com>