From: Namhyung Kim <namhyung@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
James Clark <james.clark@linaro.org>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Clark Williams <williams@redhat.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Masami Hiramatsu <mhiramat@kernel.org>
Subject: Re: [PATCH v5 0/6] perf annotate-data: Fix hangs on broken debug info, AMD mem record
Date: Fri, 25 Sep 2026 08:46:05 -0700 [thread overview]
Message-ID: <araXPQChZ9HHNFzY@z2> (raw)
In-Reply-To: <20260925150657.1826942-1-acme@kernel.org>
On Fri, Sep 25, 2026 at 05:06:51PM +0200, Arnaldo Carvalho de Melo wrote:
> Hi,
>
> This originated in another patch series, 'perf tools: Annotate fixes,
> stdio progress indication, debuginfo-client in more places', and is
> being split off so that these fixes can be reviewed right away; the
> debuginfod download feature work from it will come later, separately,
> based on this series.
>
> - 'perf report -s type' spins forever on the dwz compressed debug info of
> zlib-ng (libz.so.1): die_collect_vars() saves a type DIE offset that is
> relative to the file the DIE lives in, the dwz alt file for types shared
> by several CUs, and resolving it in the main file parses whatever is at
> that offset, here a typedef whose DW_AT_type refers to itself, making the
> typedef/qualifier chase spin (patch 3), with the chases bounded so that
> other kinds of broken debug info don't hang perf either (patches 1, 2
> and 4);
>
> - 'perf mem record' requests PERF_SAMPLE_CPU (patch 5) and uses the IBS
> swfilt filter when the kernel exposes it (patch 6), with the tables
> carrying the term kept in the arch/x86 code, where the knowledge that
> IBS needs it stays, as Ravi Bangoria suggested reviewing Namhyung
> Kim's v6 review remark on this patch
> (<4349c387-5b8a-4e8d-932a-5175a7598e1e@amd.com>, replying to
> <aqsRVABj23jaaiSq@google.com>).
>
> About PATCH 5, answering Namhyung Kim's v6 review question
> (<aqsPKGVUkWk6wvYA@google.com>) about the --sample-cpu default: the
> data source field is about the memory hierarchy level of the access,
> it has no record of which CPU issued it, and while the TID is in
> every sample and in the CTF stream, a thread time-sliced on one CPU
> or moved between SMT siblings is not told apart by it from cross-core
> contention, so it is the CPU id that keys it, and it is what the
> false-sharing detector in pahole needs. The TID is recorded as well.
>
> Requires elfutils 0.160 for dwarf_cu_getdwarf(), so the libdw feature test
> probes for it and Makefile.config says 0.160: older versions now disable
> dwarf support with that message instead of failing to link.
I have a nitpick on the patch 4, but otherwise looks good to me.
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
>
> Best regards,
>
> - Arnaldo
>
> What changed from v4:
>
> - Added Ravi Bangoria's Reviewed-by (<76ef085b-e8e3-41a5-b029-2cd0489aa430@amd.com>),
> given together with his rationale for keeping the IBS swfilt selection
> explicit: 'perf record' fails rather than transparently retrying with
> /swfilt=1/, so that the user is aware software filtering is being used
> and that it is not overhead free.
> - Trimmed the comment on the AMD mem event tables in
> tools/perf/arch/x86/util/mem-events.c per that review, dropping its
> last sentence about how 'perf record' handles exclude bits on open
> failure; the code is unchanged.
> - Patch 4: reworded the comment on the truncated flag; the JSON exporter
> that reads it is added in a later series.
> - Patch 6: dropped a leftover no-op hunk from tools/perf/util/mem-events.c;
> the swfilt selection is all in the arch/x86 code.
> Command to see this delta: git diff eb568956a7129c91..HEAD
>
> What changed from v3:
>
> - Dropped patch 5/7, "perf annotate-data: Show the sample count in the
> data-type browser": it is already in perf-tools-next as commit
> 9db4e9d6cc7c, so the series is now 6 patches and the subject no longer
> mentions it.
> - Rebased onto current perf-tools-next (base-commit below; v3 was based on
> 29f320d221c1), patch 4 adapted to the upstream __add_member_cb() cleanup
> that dropped the member_type local, no behavior change.
>
> What changed from v2:
>
> Only aggregate (struct/union) members are marked as truncated when the
> MAX_MEMBER_DEPTH limit is reached in the member nesting recursion (patch
> 4), addressing a sashiko [Medium] review finding
> (<20260921165704.38DBD1F000FF@smtp.kernel.org>): the v2 check was made
> before looking at the member's type, so a primitive field that merely
> landed on the limit, e.g. an int in a struct nested 31 deep, was marked
> as truncated and logged even though it has no children to expand. The
> limit still bounds the recursion, as only aggregates are expanded.
>
> What changed from v1:
>
> Bump MAX_MEMBER_DEPTH from 8 to 32, addressing a review comment from Namhyung.
>
> tools/build/feature/test-libdw.c | 10 ++-
> tools/perf/Documentation/perf-mem.txt | 4 +
> tools/perf/Makefile.config | 2 +-
> tools/perf/arch/x86/util/mem-events.c | 17 ++++
> tools/perf/arch/x86/util/mem-events.h | 2 +
> tools/perf/arch/x86/util/pmu.c | 10 ++-
> tools/perf/builtin-mem.c | 7 +-
> tools/perf/tests/shell/test_data_symbol.sh | 6 +-
> tools/perf/util/annotate-data.c | 41 +++++++--
> tools/perf/util/annotate-data.h | 3 +
> tools/perf/util/dwarf-aux.c | 140 ++++++++++++++++++++++++-----
> tools/perf/util/dwarf-aux.h | 13 +++
> 12 files changed, 217 insertions(+), 38 deletions(-)
>
> v4-head: eb568956a7129c91a8c0ccebb5979440a046c7ef
> v3-head: e2504280f5c4086e9851a758ed1bae8df7ef269e
> base-commit: edd8a9fe2eca009599e013a29c421c7a6b5ad1b9
> --
next prev parent reply other threads:[~2026-09-25 15:46 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-25 15:06 [PATCH v5 0/6] perf annotate-data: Fix hangs on broken debug info, AMD mem record Arnaldo Carvalho de Melo
2026-09-25 15:06 ` [PATCH 1/6] perf dwarf-aux: Bound the type chases for broken debug info Arnaldo Carvalho de Melo
2026-09-25 15:13 ` sashiko-bot
2026-09-25 15:18 ` Ian Rogers
2026-09-25 15:06 ` [PATCH 2/6] perf dwarf-aux: Add die_same_file() and die_get_type_die() Arnaldo Carvalho de Melo
2026-09-25 15:16 ` sashiko-bot
2026-09-25 15:20 ` Ian Rogers
2026-09-25 15:06 ` [PATCH 3/6] perf annotate-data: Resolve type DIEs in the debug file they came from Arnaldo Carvalho de Melo
2026-09-25 15:11 ` sashiko-bot
2026-09-25 15:35 ` Ian Rogers
2026-09-25 15:06 ` [PATCH 4/6] perf annotate-data: Bound the member nesting recursion Arnaldo Carvalho de Melo
2026-09-25 15:14 ` sashiko-bot
2026-09-25 15:37 ` Ian Rogers
2026-09-25 15:39 ` Namhyung Kim
2026-09-25 15:43 ` Arnaldo Carvalho de Melo
2026-09-25 16:11 ` Arnaldo Carvalho de Melo
2026-09-25 15:06 ` [PATCH 5/6] perf mem record: Request PERF_SAMPLE_CPU by default Arnaldo Carvalho de Melo
2026-09-25 15:17 ` sashiko-bot
2026-09-25 15:47 ` Ian Rogers
2026-09-25 15:06 ` [PATCH 6/6] perf mem record: Use the IBS swfilt filter when available Arnaldo Carvalho de Melo
2026-09-25 15:15 ` sashiko-bot
2026-09-25 15:46 ` Namhyung Kim [this message]
2026-09-25 15:48 ` [PATCH v5 0/6] perf annotate-data: Fix hangs on broken debug info, AMD mem record Arnaldo Carvalho de Melo
2026-09-25 15:58 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=araXPQChZ9HHNFzY@z2 \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.