]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.4
authorSasha Levin <sashal@kernel.org>
Mon, 29 Mar 2021 04:00:45 +0000 (00:00 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 29 Mar 2021 04:00:45 +0000 (00:00 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.4/perf-auxtrace-fix-auxtrace-queue-conflict.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/perf-auxtrace-fix-auxtrace-queue-conflict.patch b/queue-4.4/perf-auxtrace-fix-auxtrace-queue-conflict.patch
new file mode 100644 (file)
index 0000000..5be582f
--- /dev/null
@@ -0,0 +1,57 @@
+From 3b3f56813fdf347c63063a5e26ce657abeb7b8ed Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 8 Mar 2021 17:11:43 +0200
+Subject: perf auxtrace: Fix auxtrace queue conflict
+
+From: Adrian Hunter <adrian.hunter@intel.com>
+
+[ Upstream commit b410ed2a8572d41c68bd9208555610e4b07d0703 ]
+
+The only requirement of an auxtrace queue is that the buffers are in
+time order.  That is achieved by making separate queues for separate
+perf buffer or AUX area buffer mmaps.
+
+That generally means a separate queue per cpu for per-cpu contexts, and
+a separate queue per thread for per-task contexts.
+
+When buffers are added to a queue, perf checks that the buffer cpu and
+thread id (tid) match the queue cpu and thread id.
+
+However, generally, that need not be true, and perf will queue buffers
+correctly anyway, so the check is not needed.
+
+In addition, the check gets erroneously hit when using sample mode to
+trace multiple threads.
+
+Consequently, fix that case by removing the check.
+
+Fixes: e502789302a6 ("perf auxtrace: Add helpers for queuing AUX area tracing data")
+Reported-by: Andi Kleen <ak@linux.intel.com>
+Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
+Reviewed-by: Andi Kleen <ak@linux.intel.com>
+Cc: Jiri Olsa <jolsa@redhat.com>
+Link: http://lore.kernel.org/lkml/20210308151143.18338-1-adrian.hunter@intel.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/perf/util/auxtrace.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
+index 4b898b15643d..80e461dd2db2 100644
+--- a/tools/perf/util/auxtrace.c
++++ b/tools/perf/util/auxtrace.c
+@@ -239,10 +239,6 @@ static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues,
+               queue->set = true;
+               queue->tid = buffer->tid;
+               queue->cpu = buffer->cpu;
+-      } else if (buffer->cpu != queue->cpu || buffer->tid != queue->tid) {
+-              pr_err("auxtrace queue conflict: cpu %d, tid %d vs cpu %d, tid %d\n",
+-                     queue->cpu, queue->tid, buffer->cpu, buffer->tid);
+-              return -EINVAL;
+       }
+       buffer->buffer_nr = queues->next_buffer_nr++;
+-- 
+2.30.1
+
index cf23691c4e1c081d481469112c99d9a04a16d6e2..1e7a5df53a97ccfc275eafa26228f385c3ad964c 100644 (file)
@@ -27,3 +27,4 @@ can-m_can-m_can_do_rx_poll-fix-extraneous-msg-loss-w.patch
 mac80211-fix-rate-mask-reset.patch
 net-cdc-phonet-fix-data-interface-release-on-probe-f.patch
 rdma-cxgb4-fix-adapter-le-hash-errors-while-destroyi.patch
+perf-auxtrace-fix-auxtrace-queue-conflict.patch