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