Re: [PATCH] perf/core: Emit PERF_RECORD_LOST for pinned events

From: Namhyung Kim
Date: Wed Jan 20 2021 - 07:36:34 EST


On Tue, Jan 19, 2021 at 12:11 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> Hi Andi,
>
> On Tue, Jan 19, 2021 at 11:47 AM Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote:
> >
> > > > I don't think I object to having an even in the stream, but your LOST
> > > > event is unfortunate in that it itself can get lost when there's no
> > > > space in the buffer (which arguably is unlikely, but still).
> > > >
> > > > So from that point of view, I think overloading LOST is not so very nice
> > > > for this.
> > >
> > > But anything can get lost in case of no space.
> > > Do you want to use something other than the LOST event?
> >
> > Could always reserve the last entry in the ring buffer for a LOST event,
> > that would guarantee you can always get one out.
>
> A problem is that we can have more than one event that failed.
>
> In my understanding, we keep the lost count and add a LOST event
> when there's a space later. So probably we can keep a list of the
> failed events and do similar for each event. Or just use a single
> event to notify some number of events were failed.

Stephane suggested emitting an event for poll() like EPOLLERR or
EPOLLHUP. I'll take a look at that.

Thanks,
Namhyung