From: Ian Rogers Date: Thu, 3 Jul 2025 04:20:00 +0000 (-0700) Subject: perf header: Fix pipe mode header dumping X-Git-Tag: v6.17-rc1~62^2~97 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6c21316e52959f60e9367a41a7893d8459d7dfab;p=thirdparty%2Flinux.git perf header: Fix pipe mode header dumping The pipe mode header dumping was accidentally removed when tracing of header feature events in pipe mode was added. Minor spelling tweak to header test failure message. Fixes: 61051f9a8452 ("perf header: In pipe mode dump features without --header/-I") Signed-off-by: Ian Rogers Tested-by: Namhyung Kim Link: https://lore.kernel.org/r/20250703042000.2740640-1-irogers@google.com Signed-off-by: Namhyung Kim --- diff --git a/tools/perf/tests/shell/header.sh b/tools/perf/tests/shell/header.sh index 412263de6ed70..e1628ac0a6140 100755 --- a/tools/perf/tests/shell/header.sh +++ b/tools/perf/tests/shell/header.sh @@ -42,7 +42,7 @@ check_header_output() { do if ! grep -q -E "$i" "${script_output}" then - echo "Failed to find expect $i in output" + echo "Failed to find expected $i in output" err=1 fi done diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 487f663ed2de0..53d54fbda10da 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -4343,6 +4343,7 @@ int perf_event__process_feature(struct perf_session *session, int type = fe->header.type; u64 feat = fe->feat_id; int ret = 0; + bool print = dump_trace; if (type < 0 || type >= PERF_RECORD_HEADER_MAX) { pr_warning("invalid record type %d in pipe-mode\n", type); @@ -4362,8 +4363,20 @@ int perf_event__process_feature(struct perf_session *session, goto out; } - if (dump_trace) { + if (session->tool->show_feat_hdr) { + if (!feat_ops[feat].full_only || + session->tool->show_feat_hdr >= SHOW_FEAT_HEADER_FULL_INFO) { + print = true; + } else { + fprintf(stdout, "# %s info available, use -I to display\n", + feat_ops[feat].name); + } + } + + if (dump_trace) printf(", "); + + if (print) { if (feat_ops[feat].print) feat_ops[feat].print(&ff, stdout); else