mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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
> --

  parent reply	other threads:[~2026-09-25 15:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-25 15:06 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: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: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: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: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: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: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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®