On Mon, 18 Nov 2024 08:37:03 +0100 Tomasz Duszynski <tduszyn...@marvell.com> wrote:
> diff --git a/doc/guides/prog_guide/profile_app.rst > b/doc/guides/prog_guide/profile_app.rst > index a6b5fb4d5e..ecb90a0d94 100644 > --- a/doc/guides/prog_guide/profile_app.rst > +++ b/doc/guides/prog_guide/profile_app.rst > @@ -7,6 +7,32 @@ Profile Your Application > The following sections describe methods of profiling DPDK applications on > different architectures. > > +Performance counter based profiling > +----------------------------------- > + > +Majority of architectures support some performance monitoring unit (PMU). > +Such unit provides programmable counters that monitor specific events. > + > +Different tools gather that information, like for example perf. > +However, in some scenarios when CPU cores are isolated and run > +dedicated tasks interrupting those tasks with perf may be undesirable. The data should be folded into telemetry rather than introducing yet another DPDK API for applications to deal with. > + > +In such cases, an application can use the PMU library to read such events > via ``rte_pmu_read()``. > + > +By default, userspace applications are not allowed to access PMU internals. > That can be changed > +by setting ``/sys/kernel/perf_event_paranoid`` to 2 (that should be a > default value anyway) and > +adding ``CAP_PERFMON`` capability to DPDK application. Please refer to > +``Documentation/admin-guide/perf-security.rst`` under Linux sources for more > information. Fairly > +recent kernel, i.e >= 5.9, is advised too. What happens on older kernels? > + > +As of now implementation imposes certain limitations: > + > +* Only EAL lcores are supported > + > +* EAL lcores must not share a cpu > + > +* Each EAL lcore measures same group of events > + > > Profiling on x86 > ---------------- > diff --git a/doc/guides/rel_notes/release_24_11.rst > b/doc/guides/rel_notes/release_24_11.rst > index 5063badf39..1c299293e0 100644 > --- a/doc/guides/rel_notes/release_24_11.rst > +++ b/doc/guides/rel_notes/release_24_11.rst Well 24.11 is released, so as a minimum will need rebase for 25.03