Re: [PATCH v3] perf/core: Set event shadow time for inactive events too

From: Peter Zijlstra
Date: Thu Dec 09 2021 - 06:26:48 EST


On Sun, Dec 05, 2021 at 02:48:43PM -0800, Namhyung Kim wrote:

> Actually 18446744069443110306 is 0xffffffff01b345a2 so it seems to
> have a negative enabled time. In fact, bperf keeps values returned by
> bpf_perf_event_read_value() which calls perf_event_read_local(), and
> accumulates delta between two calls. When event->shadow_ctx_time is
> not set, it'd return invalid enabled time which is bigger than normal.

*that*, how does it happen that shadow_time isn't set? It should be last
set when the event switches to INACTIVE, no? At which point the logic in
perf_event_read_local() should make @enabled move forward while @running
stays put.

Let me go rummage around a bit... either I'm missing something obvious
or something's smelly.