Messages in this thread | | | From | Namhyung Kim <> | Date | Mon, 25 Apr 2022 12:06:53 -0700 | Subject | Re: [PATCHSET v4 next 0/3] perf stat: add user_time and system_time tool events |
| |
On Sat, Apr 23, 2022 at 5:16 AM Florian Fischer <florian.fischer@muhq.space> wrote: > > On 22.04.2022 16:52, Namhyung Kim wrote: > > Hello, > > > > On Fri, Apr 22, 2022 at 3:05 PM Arnaldo Carvalho de Melo > > <acme@kernel.org> wrote: > > > > > > Em Wed, Apr 20, 2022 at 12:23:51PM +0200, Florian Fischer escreveu: > > > > This patch series adds new internal events to perf stat exposing the times spend > > > > in user and kernel mode in nanoseconds reported by rusage. > > > > > > > > During some benchmarking using perf it bothered me that I could not easily > > > > retrieve those times 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: > > > > user_time and system_time. > > > > > > > > This allows to retrieved them in machine-readable output: > > > > > > > > $ ./perf stat -x, -e duration_time,user_time,system_time,cache-misses -- grep -q -r duration_time tools/perf > > > > 72134524,ns,duration_time:u,72134524,100.00,, > > > > 65225000,ns,user_time:u,65225000,100.00,, > > > > 6865000,ns,ssystem_time:u,6865000,100.00,,
> > Anyway it looks a little bit strange to me if we can get > > system time in user mode only (the 'u' modifier). > > Sorry but I don't really understand what you mean. > The system_time is reported to userspace via rusage filled by wait4(2). > It will always report the value reported to the user space regardless of what > counters perf has access to. > > If you run perf as user you get the same system_time (but with the ':u' suffix) > as when you run perf as root or lower kernel.perf_event_paranoid to allow access > to more counters.
The ':u' modifier means that the event should count only in user mode. So I think system_time:u should be 0 by definition. Likewise, user_time:k should be handled as such.
But as I said before, we already have the task-clock event, so it's not clear why we need this too. Also these tool events won't work for other use cases like perf record.
Thanks, Namhyung
| |