Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1399903
| From | tip-bot for Alexander Shishkin <tipbot@zytor.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [tip:perf/core] perf/x86/intel/pt: Generate PMI in the STOP region as well |
| Date | 2016-05-12 12:40 +0200 |
| Message-ID | <rxWcb-3K2-37@gated-at.bofh.it> (permalink) |
| References | <rxfJV-32e-25@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Commit-ID: 5fbe4788b55540a6c4fe2c47e05482ac356eaf74 Gitweb: http://git.kernel.org/tip/5fbe4788b55540a6c4fe2c47e05482ac356eaf74 Author: Alexander Shishkin <alexander.shishkin@linux.intel.com> AuthorDate: Tue, 10 May 2016 16:18:32 +0300 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Thu, 12 May 2016 10:14:55 +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@intel.com> Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: vince@deater.net Link: http://lkml.kernel.org/r/1462886313-13660-2-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/events/intel/pt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c index 54fa238..04bb5fb 100644 --- a/arch/x86/events/intel/pt.c +++ b/arch/x86/events/intel/pt.c @@ -835,6 +835,7 @@ static int pt_buffer_reset_markers(struct pt_buffer *buf, /* clear STOP and INT from current entry */ buf->topa_index[buf->stop_pos]->stop = 0; + buf->topa_index[buf->stop_pos]->intr = 0; buf->topa_index[buf->intr_pos]->intr = 0; /* how many pages till the STOP marker */ @@ -859,6 +860,7 @@ static int pt_buffer_reset_markers(struct pt_buffer *buf, buf->intr_pos = idx; buf->topa_index[buf->stop_pos]->stop = 1; + buf->topa_index[buf->stop_pos]->intr = 1; buf->topa_index[buf->intr_pos]->intr = 1; return 0;
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/2] perf, pt: Fix massive data losses Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-10 15:20 +0200
[PATCH 1/2] perf/x86/intel/pt: Generate PMI in the STOP region as well Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-10 15:20 +0200
[tip:perf/core] perf/x86/intel/pt: Generate PMI in the STOP region as well tip-bot for Alexander Shishkin <tipbot@zytor.com> - 2016-05-12 12:40 +0200
Re: [tip:perf/core] perf/x86/intel/pt: Generate PMI in the STOP region as well Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-12 14:30 +0200
Re: [tip:perf/core] perf/x86/intel/pt: Generate PMI in the STOP region as well Ingo Molnar <mingo@kernel.org> - 2016-05-12 14:50 +0200
Re: [tip:perf/core] perf/x86/intel/pt: Generate PMI in the STOP region as well Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-12 15:10 +0200
[tip:perf/urgent] perf/x86/intel/pt: Generate PMI in the STOP region as well tip-bot for Alexander Shishkin <tipbot@zytor.com> - 2016-05-12 15:00 +0200
Re: [tip:perf/urgent] perf/x86/intel/pt: Generate PMI in the STOP region as well Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-17 09:40 +0200
Re: [tip:perf/urgent] perf/x86/intel/pt: Generate PMI in the STOP region as well Ingo Molnar <mingo@kernel.org> - 2016-05-17 10:50 +0200
Re: [tip:perf/urgent] perf/x86/intel/pt: Generate PMI in the STOP region as well Greg KH <gregkh@linuxfoundation.org> - 2016-05-21 07:30 +0200
[PATCH 2/2] perf: Disable the event on a truncated AUX record Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-10 15:20 +0200
Re: [PATCH 2/2] perf: Disable the event on a truncated AUX record Peter Zijlstra <peterz@infradead.org> - 2016-05-11 11:20 +0200
Re: [PATCH 2/2] perf: Disable the event on a truncated AUX record Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-11 11:50 +0200
Re: [PATCH 2/2] perf: Disable the event on a truncated AUX record Peter Zijlstra <peterz@infradead.org> - 2016-05-11 12:00 +0200
Re: [PATCH 2/2] perf: Disable the event on a truncated AUX record Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-05-11 12:10 +0200
[tip:perf/core] perf/core: Disable the event on a truncated AUX record tip-bot for Alexander Shishkin <tipbot@zytor.com> - 2016-05-12 12:40 +0200
[tip:perf/urgent] perf/core: Disable the event on a truncated AUX record tip-bot for Alexander Shishkin <tipbot@zytor.com> - 2016-05-12 15:00 +0200
csiph-web