Re: [PATCH 02/17] perf tools: Add evlist channel helpers

From: Arnaldo Carvalho de Melo
Date: Wed May 18 2016 - 09:24:18 EST


Em Wed, May 18, 2016 at 11:27:43AM +0800, Wangnan (F) escreveu:
> On 2016/5/13 21:05, Arnaldo Carvalho de Melo wrote:
> >Em Fri, May 13, 2016 at 07:55:59AM +0000, Wang Nan escreveu:
> >> Channels hold different groups of evsels which configured
> >> differently. It will be used for overwritable evsels, which allows
> >> perf

> >why not use multiple evlists? An "evlist" is a "list of evsels", why do
> >we need yet another way of grouping evlists?

> There's an assumption all over perf that there's only one evlist: in
> 'struct record' there's an 'evlist' pointer, in 'struct session'
> there's also an 'evlist' pointer.

Well, at some point there were none, and multiple tools used multiple
ways to deal with lists of events :-)

> Trying to change them to an array results in 181 errors, so I think
> fundamentally moving to multiple evlists is nearly impossible.

Well, in the next paragraph you give it some hope :-)

> Now I'm thinking introducing auxiliary evlists to perf record. We
> still obey one evlist assumption, only creates separated evlists for
> mmap.

Ok, that may be the way to go, i.e. linking evlists somehow for some
specific use cases, i.e. consuming events from multiple evlists,
probably sorting them via the ordered_events class, etc.

I have to review this more deeply to try and come with suggestions :-\

- Arnaldo