Re: [tip:perf/urgent] perf/x86/intel/pt: Generate PMI in the STOP region as well
From: Ingo Molnar
Date: Tue May 17 2016 - 04:40:49 EST
* Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> wrote:
> tip-bot for Alexander Shishkin <tipbot@xxxxxxxxx> writes:
>
> > Commit-ID: ab92b232ae05c382c3df0e3d6a5c6d16b639ac8c
> > Gitweb: http://git.kernel.org/tip/ab92b232ae05c382c3df0e3d6a5c6d16b639ac8c
> > Author: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> > AuthorDate: Tue, 10 May 2016 16:18:32 +0300
> > Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> > CommitDate: Thu, 12 May 2016 14:45:59 +0200
> >
> > perf/x86/intel/pt: Generate PMI in the STOP region as well
> >
> > Currently, the PT driver always sets the PMI bit one region (page) before
> > the STOP region so that we can wake up the consumer before we run out of
> > room in the buffer and have to disable the event. However, we also need
> > an interrupt in the last output region, so that we actually get to disable
> > the event (if no more room from new data is available at that point),
> > otherwise hardware just quietly refuses to start, but the event is
> > scheduled in and we end up losing trace data till the event gets removed.
> >
> > For a cpu-wide event it is even worse since there may not be any
> > re-scheduling at all and no chance for the ring buffer code to notice
> > that its buffer is filled up and the event needs to be disabled (so that
> > the consumer can re-enable it when it finishes reading the data out). In
> > other words, all the trace data will be lost after the buffer gets filled
> > up.
> >
> > This patch makes PT also generate a PMI when the last output region is
> > full.
> >
> > Reported-by: Markus Metzger <markus.t.metzger@xxxxxxxxx>
> > Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > Cc: <stable@xxxxxxxxxxxxxxx>
>
> Can we also have this one queued up for stable 4.4 and 4.5?
Agreed.
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Thanks,
Ingo