[RFC v2] perf stat: add rusage utime and stime events

From: Florian Fischer
Date: Wed Apr 06 2022 - 07:57:31 EST


This patch series adds new internal events to perf stat exposing the utime and
stime reported by rusage.

During some benchmarking using perf it bothered me that I could not easily
retrieve the times spent in user or kernel mode from perf stat when using the
machine readable output.

But perf definitely knows about those values because in the human readable output
they are present.

Therefore I exposed the times reported by rusage via the new tool events:
rusage_user_time, rusage_system_time and their aliases ru_utime and ru_stime.

This allows to retrieved them in machine-readable output:

$ ./perf stat -x, -e duration_time,ru_utime,ru_stime,cache-misses -- grep -q -r duration_time tools/perf
72134524,ns,duration_time:u,72134524,100.00,,
65225,us,ru_utime:u,65225,100.00,,
6865,us,ru_stime:u,6865,100.00,,
38705,,cache-misses:u,71189328,100.00,,

The changes are mostly inspired by the code for the only other available
tool event: 'duration_time'.

For now rusage_* events are not usable with metrics (as far as I understand).

The patch applies cleanly on linux-next/next-20220405.

[PATCH v2 1/4] perf stat: introduce stats for the user and system
[PATCH v2 2/4] perf stat: add rusage utime and stime events
[PATCH v2 3/4] perf list: print all available tool events
[PATCH v2 4/4] perf util: add 'us' unit to the rusage time events

[v2]: Split up the changes into separate commits.

Florian Fischer