[PATCH v1 0/2] Add procfs based memory and network tool events

From: Ian Rogers

Date: Sat Jan 03 2026 - 20:17:53 EST


Add events for memory use and network activity based on data readily
available in /prod/pid/statm, /proc/pid/smaps_rollup and
/proc/pid/net/dev. For example the network usage of chrome processes
on a system may be gathered with:
```
$ perf stat -e net_rx_bytes,net_rx_compressed,net_rx_drop,net_rx_errors,net_rx_fifo,net_rx_frame,net_rx_multicast,net_rx_packets,net_tx_bytes,net_tx_carrier,net_tx_colls,net_tx_compressed,net_tx_drop,net_tx_errors,net_tx_fifo,net_tx_packets -p $(pidof -d, chrome) -I 1000
1.001023475 0 net_rx_bytes
1.001023475 0 net_rx_compressed
1.001023475 42,647,328 net_rx_drop
1.001023475 463,069,152 net_rx_errors
1.001023475 0 net_rx_fifo
1.001023475 0 net_rx_frame
1.001023475 0 net_rx_multicast
1.001023475 423,195,831,744 net_rx_packets
1.001023475 0 net_tx_bytes
1.001023475 0 net_tx_carrier
1.001023475 0 net_tx_colls
1.001023475 0 net_tx_compressed
1.001023475 0 net_tx_drop
1.001023475 0 net_tx_errors
1.001023475 0 net_tx_fifo
1.001023475 0 net_tx_packets
```

As the events are in the tool_pmu they can be used in metrics. The
json descriptions they are exposed in `perf list` and the events can
be seen in the python ilist application.

Note, if a process terminates then the count reading returns an error
and this can expose what appear to be latent bugs in the aggregation
and display code.

Ian Rogers (2):
perf tool_pmu: Add memory events
perf tool_pmu: Add network events

tools/perf/builtin-stat.c | 10 +-
.../pmu-events/arch/common/common/tool.json | 266 ++++++++-
tools/perf/pmu-events/empty-pmu-events.c | 312 +++++++----
tools/perf/util/tool_pmu.c | 514 +++++++++++++++++-
tools/perf/util/tool_pmu.h | 44 ++
5 files changed, 1026 insertions(+), 120 deletions(-)

--
2.52.0.351.gbe84eed79e-goog