From: Greg Kroah-Hartman Date: Mon, 8 May 2023 05:49:08 +0000 (+0200) Subject: 6.2-stable patches X-Git-Tag: v5.15.111~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=43a6c93ef5101e1de51e16a71bb60d9f3ea59514;p=thirdparty%2Fkernel%2Fstable-queue.git 6.2-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-6.2/perf-auxtrace-fix-address-filter-entire-kernel-size.patch b/queue-6.2/perf-auxtrace-fix-address-filter-entire-kernel-size.patch new file mode 100644 index 00000000000..efe539622d3 --- /dev/null +++ b/queue-6.2/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 +@@ -2444,6 +2444,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; +@@ -2453,7 +2454,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-6.2/perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch b/queue-6.2/perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch new file mode 100644 index 00000000000..ea428ddaed8 --- /dev/null +++ b/queue-6.2/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 +@@ -1998,6 +1998,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-6.2/series b/queue-6.2/series index bc39bcea730..83f06633240 100644 --- a/queue-6.2/series +++ b/queue-6.2/series @@ -665,3 +665,5 @@ cifs-fix-sharing-of-dfs-connections.patch cifs-fix-potential-race-when-tree-connecting-ipc.patch cifs-protect-access-of-tcp_server_info-origin-leaf-_fullpath.patch thunderbolt-use-correct-type-in-tb_port_is_clx_enabled-prototype.patch +perf-auxtrace-fix-address-filter-entire-kernel-size.patch +perf-intel-pt-fix-cyc-timestamps-after-standalone-cbr.patch