Re: [RFC 00/20] perf: Finish sampling commands when events are closed

Jiri Olsa
2014-08-12T07:30:19Z

On Mon, Aug 11, 2014 at 05:12:49PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, Aug 11, 2014 at 10:49:54AM +0200, Jiri Olsa escreveu:
> > hi,
> > adding support to quit sampling commands:
> > record,top,trace,kvm stat live
> >
> > when all the monitored events are closed, like following perf
> > command will now exit when monitored process (pid 1234) exits:
> >
> > $ perf record -p 1234
> >
> > I added independent poller object to handle basic polling
> > tasks. I had to factor some parts, so sending this as RFC,
>
> Why? I'm trying to figure out why this poller class is needed, just from
> reading the changelog entries, no luck so far.

multiple reasons.. at the moment:
- have a way to get FD state notification -> callback triggers for FD
and we can figure when we are out of monitored events or notify there
was error/hup on event

- to be able to gather/register more kinds of FDs under one
poll instance, so we could poll together on standard input
or other kind of notify event with perf events within a
single poll call

for future:
- there's another feature for record to watch hotplug CPUs
and open/close perf event for it when CPU is added/removed
we need to watch/poll inotify events for that

- when having multiple threads for record command we'll need to split
evlist events into more polling instances, so each thread could
poll independently

also I think the poller class just encapsulates the polling
processing and reduces the evlist complexity

jirka