From: Greg Kroah-Hartman Date: Mon, 8 May 2023 05:48:28 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v5.15.111~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aee5f11b3e50e67cde805c20ca8d10d6b7689790;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: perf-auxtrace-fix-address-filter-entire-kernel-size.patch perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch --- diff --git a/queue-5.4/perf-auxtrace-fix-address-filter-entire-kernel-size.patch b/queue-5.4/perf-auxtrace-fix-address-filter-entire-kernel-size.patch new file mode 100644 index 00000000000..bd0d66a2971 --- /dev/null +++ b/queue-5.4/perf-auxtrace-fix-address-filter-entire-kernel-size.patch @@ -0,0 +1,65 @@ +From 1f9f33ccf0320be21703d9195dd2b36a1c9a07cb Mon Sep 17 00:00:00 2001 +From: Adrian Hunter +Date: Mon, 3 Apr 2023 18:48:30 +0300 +Subject: perf auxtrace: Fix address filter entire kernel size + +From: Adrian Hunter + +commit 1f9f33ccf0320be21703d9195dd2b36a1c9a07cb upstream. + +kallsyms is not completely in address order. + +In find_entire_kern_cb(), calculate the kernel end from the maximum +address not the last symbol. + +Example: + + Before: + + $ sudo cat /proc/kallsyms | grep ' [twTw] ' | tail -1 + ffffffffc00b8bd0 t bpf_prog_6deef7357e7b4530 [bpf] + $ sudo cat /proc/kallsyms | grep ' [twTw] ' | sort | tail -1 + ffffffffc15e0cc0 t iwl_mvm_exit [iwlmvm] + $ perf.d093603a05aa record -v --kcore -e intel_pt// --filter 'filter *' -- uname |& grep filter + Address filter: filter 0xffffffff93200000/0x2ceba000 + + After: + + $ perf.8fb0f7a01f8e record -v --kcore -e intel_pt// --filter 'filter *' -- uname |& grep filter + Address filter: filter 0xffffffff93200000/0x2e3e2000 + +Fixes: 1b36c03e356936d6 ("perf record: Add support for using symbols in address filters") +Signed-off-by: Adrian Hunter +Cc: Adrian Hunter +Cc: Ian Rogers +Cc: Jiri Olsa +Cc: Namhyung Kim +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20230403154831.8651-2-adrian.hunter@intel.com +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman +--- + tools/perf/util/auxtrace.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/tools/perf/util/auxtrace.c ++++ b/tools/perf/util/auxtrace.c +@@ -1825,6 +1825,7 @@ static int find_entire_kern_cb(void *arg + char type, u64 start) + { + struct sym_args *args = arg; ++ u64 size; + + if (!kallsyms__is_function(type)) + return 0; +@@ -1834,7 +1835,9 @@ static int find_entire_kern_cb(void *arg + args->start = start; + } + /* Don't know exactly where the kernel ends, so we add a page */ +- args->size = round_up(start, page_size) + page_size - args->start; ++ size = round_up(start, page_size) + page_size - args->start; ++ if (size > args->size) ++ args->size = size; + + return 0; + } diff --git a/queue-5.4/perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch b/queue-5.4/perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch new file mode 100644 index 00000000000..dc446eed318 --- /dev/null +++ b/queue-5.4/perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch @@ -0,0 +1,38 @@ +From 430635a0ef1ce958b7b4311f172694ece2c692b8 Mon Sep 17 00:00:00 2001 +From: Adrian Hunter +Date: Mon, 3 Apr 2023 18:48:31 +0300 +Subject: perf intel-pt: Fix CYC timestamps after standalone CBR + +From: Adrian Hunter + +commit 430635a0ef1ce958b7b4311f172694ece2c692b8 upstream. + +After a standalone CBR (not associated with TSC), update the cycles +reference timestamp and reset the cycle count, so that CYC timestamps +are calculated relative to that point with the new frequency. + +Fixes: cc33618619cefc6d ("perf tools: Add Intel PT support for decoding CYC packets") +Signed-off-by: Adrian Hunter +Cc: Adrian Hunter +Cc: Ian Rogers +Cc: Jiri Olsa +Cc: Namhyung Kim +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20230403154831.8651-2-adrian.hunter@intel.com +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman +--- + tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c ++++ b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +@@ -1592,6 +1592,8 @@ static void intel_pt_calc_cbr(struct int + + decoder->cbr = cbr; + decoder->cbr_cyc_to_tsc = decoder->max_non_turbo_ratio_fp / cbr; ++ decoder->cyc_ref_timestamp = decoder->timestamp; ++ decoder->cycle_cnt = 0; + + intel_pt_mtc_cyc_cnt_cbr(decoder); + } diff --git a/queue-5.4/series b/queue-5.4/series index e99c45a0799..c5c6902502b 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -206,3 +206,5 @@ dm-clone-call-kmem_cache_destroy-in-dm_clone_init-error-path.patch dm-integrity-call-kmem_cache_destroy-in-dm_integrity_init-error-path.patch dm-flakey-fix-a-crash-with-invalid-table-line.patch dm-ioctl-fix-nested-locking-in-table_clear-to-remove-deadlock-concern.patch +perf-auxtrace-fix-address-filter-entire-kernel-size.patch +perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch