[RFC PATCH 0/3] Introduce a C extension module to allow libperf usage from python

From: Gautam Menghani
Date: Thu Mar 13 2025 - 03:52:05 EST


In this RFC series, we are introducing a C extension module to allow
python programs to call the libperf API functions. Currently libperf can
be used by C programs, but expanding the support to python is beneficial
for python users.

The structure of the patch series is as follows:
1. Patch 1 : Create wrappers for the perf structs which are used by
examples/counting.c

2. Patch 2: Create the C extension module that maps and exposes the
libperf functions to python programs

2. Patch 3: A python variant of counting.c - counting.py to demonstrate
the usage of libperf from python

We have not added support for entire libperf, as we want to get
community feedback on the approach taken in this series.

Gautam Menghani (3):
libperf: Introduce wrappers for perf structs to be exposed to python
libperf: Introduce a C extension module for python
libperf: Add counting.py example to demonstrate libperf usage from
python

tools/lib/perf/Build | 1 +
.../perf/Documentation/examples/counting.py | 74 +++
tools/lib/perf/Makefile | 12 +-
tools/lib/perf/include/perf/py_perf.h | 431 ++++++++++++++++++
tools/lib/perf/libperf.map | 1 +
tools/lib/perf/py_perf.c | 262 +++++++++++
6 files changed, 779 insertions(+), 2 deletions(-)
create mode 100755 tools/lib/perf/Documentation/examples/counting.py
create mode 100644 tools/lib/perf/include/perf/py_perf.h
create mode 100644 tools/lib/perf/py_perf.c

--
2.47.0