Hi,
I am trying to configure 8 events in a machine which supports only 4 (so, using multiplexing). I tried different approaches:
1) Configure 8 events independently (works as expected)
2) Configure 2 event-sets of 4 events each in counting mode (works as expected)
3) Configure 2 event-sets of 4 events each in sampling mode (not working right)
In case 3) I also tried different approaches:
3.a) 1 ring-buffer for each event-set and a callback for the POLL signal
- only the first ring-buffer was detecting samples
- the second ring-buffer was empty
3.b) 1 ring-buffer shared between event-sets (using PERF_EVENT_IOC_SET_OUTPUT)
- both event-sets were writing to the ring-buffer
- 1st event-set only writes 2 samples while 2nd event-set writes like 20+ samples
- samples from 1st event-set report time_enabled=time_running while samples from 2nd don?t
Moreover, in both cases the wakeup_events parameter is not working.
I believe there must be some programming bugs in perf_event while profiling in sampling mode with multiple event-sets (groups).
Regards,
matallui
Hi,
On Tue, Jun 24, 2014 at 7:36 PM, Luís Taniça <[email protected]> wrote:
> Hi,
>
> I am trying to configure 8 events in a machine which supports only 4 (so, using multiplexing). I tried different approaches:
>
> 1) Configure 8 events independently (works as expected)
> 2) Configure 2 event-sets of 4 events each in counting mode (works as expected)
> 3) Configure 2 event-sets of 4 events each in sampling mode (not working right)
>
What do it mean 'not working' in 3)?
Are you using perf record or your own code?
I think it would help if you could share the exact setup, i.e., the various
struct perf_event_attr structs.
> In case 3) I also tried different approaches:
>
> 3.a) 1 ring-buffer for each event-set and a callback for the POLL signal
> - only the first ring-buffer was detecting samples
> - the second ring-buffer was empty
>
> 3.b) 1 ring-buffer shared between event-sets (using PERF_EVENT_IOC_SET_OUTPUT)
> - both event-sets were writing to the ring-buffer
> - 1st event-set only writes 2 samples while 2nd event-set writes like 20+ samples
> - samples from 1st event-set report time_enabled=time_running while samples from 2nd don’t
>
> Moreover, in both cases the wakeup_events parameter is not working.
> I believe there must be some programming bugs in perf_event while profiling in sampling mode with multiple event-sets (groups).
>
> Regards,
> matallui
>
>