With libpfm4, I have developed a set of examples which are using
perf_events to demonstrate typical counting and sampling scenarios.
In two of the sampling program, it appears time_enabled, time_running
included in the samples are incorrect.
The program notify_self.c uses IOC_REFRESH to get a notification for
each sample. The first sample comes out with time_running = time_enabled =0,
subsequent samples return non-zero information. I suspect something is
wrong initially because of IOC_REFRESH. This is using an event group.
The program task_smpl.c is sampling another process. Although the scaling
information is requested, all samples come out with time_running =
The rest of the sample is correct, so it's not like I am not correctly
sample. The program is using an event group.
I suspect both issues may be related.
You can obtain the test programs (which are open-source!), by cloning
the GIT tree