]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
patches for 4.9
authorSasha Levin <sashal@kernel.org>
Mon, 18 Feb 2019 02:07:05 +0000 (21:07 -0500)
committerSasha Levin <sashal@kernel.org>
Mon, 18 Feb 2019 02:07:05 +0000 (21:07 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.9/perf-report-include-partial-stacks-unwound-with-libd.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/perf-report-include-partial-stacks-unwound-with-libd.patch b/queue-4.9/perf-report-include-partial-stacks-unwound-with-libd.patch
new file mode 100644 (file)
index 0000000..912fad4
--- /dev/null
@@ -0,0 +1,98 @@
+From 1d238b35aefe9a979294c12d8fb9744cd06fff02 Mon Sep 17 00:00:00 2001
+From: Milian Wolff <milian.wolff@kdab.com>
+Date: Fri, 15 Feb 2019 12:49:28 +0000
+Subject: perf report: Include partial stacks unwound with libdw
+
+commit 5ea0416f51cc93436bbe497c62ab49fd9cb245b6 upstream.
+
+So far the whole stack was thrown away when any error occurred before
+the maximum stack depth was unwound. This is actually a very common
+scenario though. The stacks that got unwound so far are still
+interesting. This removes a large chunk of differences when comparing
+perf script output for libunwind and libdw perf unwinding.
+
+E.g. with libunwind:
+
+~~~~~
+heaptrack_gui  2228 135073.388524:     479408 cycles:
+        ffffffff811749ed perf_iterate_ctx ([kernel.kallsyms])
+        ffffffff81181662 perf_event_mmap ([kernel.kallsyms])
+        ffffffff811cf5ed mmap_region ([kernel.kallsyms])
+        ffffffff811cfe6b do_mmap ([kernel.kallsyms])
+        ffffffff811b0dca vm_mmap_pgoff ([kernel.kallsyms])
+        ffffffff811cdb0c sys_mmap_pgoff ([kernel.kallsyms])
+        ffffffff81033acb sys_mmap ([kernel.kallsyms])
+        ffffffff81631d37 entry_SYSCALL_64_fastpath ([kernel.kallsyms])
+                   192ca mmap64 (/usr/lib/ld-2.25.so)
+                    59a9 _dl_map_object_from_fd (/usr/lib/ld-2.25.so)
+                    83d0 _dl_map_object (/usr/lib/ld-2.25.so)
+                    cda1 openaux (/usr/lib/ld-2.25.so)
+                   1834f _dl_catch_error (/usr/lib/ld-2.25.so)
+                    cfe2 _dl_map_object_deps (/usr/lib/ld-2.25.so)
+                    3481 dl_main (/usr/lib/ld-2.25.so)
+                   17387 _dl_sysdep_start (/usr/lib/ld-2.25.so)
+                    4d37 _dl_start (/usr/lib/ld-2.25.so)
+                     d87 _start (/usr/lib/ld-2.25.so)
+
+heaptrack_gui  2228 135073.388677:     611329 cycles:
+                   1a3e0 strcmp (/usr/lib/ld-2.25.so)
+                    82b2 _dl_map_object (/usr/lib/ld-2.25.so)
+                    cda1 openaux (/usr/lib/ld-2.25.so)
+                   1834f _dl_catch_error (/usr/lib/ld-2.25.so)
+                    cfe2 _dl_map_object_deps (/usr/lib/ld-2.25.so)
+                    3481 dl_main (/usr/lib/ld-2.25.so)
+                   17387 _dl_sysdep_start (/usr/lib/ld-2.25.so)
+                    4d37 _dl_start (/usr/lib/ld-2.25.so)
+                     d87 _start (/usr/lib/ld-2.25.so)
+~~~~~
+
+With libdw without this patch:
+
+~~~~~
+heaptrack_gui  2228 135073.388524:     479408 cycles:
+        ffffffff811749ed perf_iterate_ctx ([kernel.kallsyms])
+        ffffffff81181662 perf_event_mmap ([kernel.kallsyms])
+        ffffffff811cf5ed mmap_region ([kernel.kallsyms])
+        ffffffff811cfe6b do_mmap ([kernel.kallsyms])
+        ffffffff811b0dca vm_mmap_pgoff ([kernel.kallsyms])
+        ffffffff811cdb0c sys_mmap_pgoff ([kernel.kallsyms])
+        ffffffff81033acb sys_mmap ([kernel.kallsyms])
+        ffffffff81631d37 entry_SYSCALL_64_fastpath ([kernel.kallsyms])
+
+heaptrack_gui  2228 135073.388677:     611329 cycles:
+~~~~~
+
+With this patch applied, the libdw unwinder will produce the same
+output as the libunwind unwinder.
+
+Signed-off-by: Nikson Kanti Paul <nikson@amazon.com>
+Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
+Cc: Jiri Olsa <jolsa@redhat.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Link: http://lkml.kernel.org/r/20170601210021.20046-1-milian.wolff@kdab.com
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Cc: Amit Shah <aams@amazon.de>
+Cc: David Woodhouse <dwmw@amazon.co.uk>
+Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: <stable@vger.kernel.org> # 4.9
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/perf/util/unwind-libdw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/perf/util/unwind-libdw.c b/tools/perf/util/unwind-libdw.c
+index 046a4850e3df..ff32ca1d81ff 100644
+--- a/tools/perf/util/unwind-libdw.c
++++ b/tools/perf/util/unwind-libdw.c
+@@ -231,7 +231,7 @@ int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
+       err = dwfl_getthread_frames(ui->dwfl, thread->tid, frame_callback, ui);
+-      if (err && !ui->max_stack)
++      if (err && ui->max_stack != max_stack)
+               err = 0;
+       /*
+-- 
+2.19.1
+
index 35293a88fb364e8a958c8b90a5998e37a9998119..508cf3104d295acdcda21815f26dbf53c2a58c84 100644 (file)
@@ -31,3 +31,4 @@ arm-dts-da850-lcdk-correct-the-sound-card-name.patch
 arm-dts-kirkwood-fix-polarity-of-gpio-fan-lines.patch
 gpio-pl061-handle-failed-allocations.patch
 cifs-limit-memory-used-by-lock-request-calls-to-a-pa.patch
+perf-report-include-partial-stacks-unwound-with-libd.patch