From: sashiko-bot@kernel.org
To: "Namhyung Kim" <namhyung@kernel.org>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v2 02/10] perf tools: Try linked debug files for DSO debug info
Date: Tue, 06 Oct 2026 23:54:46 +0000 [thread overview]
Message-ID: <sashiko-outbox-162537@kernel.org> (raw)
In-Reply-To: <20261006234315.920817-3-namhyung@kernel.org>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] perf: DSO_BINARY_TYPE__DEBUGLINK bypasses mount namespace fallback
- [Low] perf: Incorrect path formatting in DEBUGLINK resolution for local files
--
commit 8a09d3bb34892b4472de63b4949a0752ebfa1103
Author: Namhyung Kim <namhyung@kernel.org>
perf tools: Try linked debug files for DSO debug info
The dso__find_dbginfo_type() should try DSO_BINARY_TYPE__DEBUGLINK so it
can follow the .gnu_debuglink and find the debug information in the
separate file.
> diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
> index df03f84c97235..913877b84b2d4 100644
> --- a/tools/perf/util/dso.c
> +++ b/tools/perf/util/dso.c
> @@ -2111,6 +2111,7 @@ void dso__find_dbginfo_type(struct dso *dso)
> DSO_BINARY_TYPE__OPENEMBEDDED_DEBUGINFO,
> DSO_BINARY_TYPE__BUILDID_DEBUGINFO,
> DSO_BINARY_TYPE__SYSTEM_PATH_DSO,
> + DSO_BINARY_TYPE__DEBUGLINK,
[Severity: Medium]
Will this addition bypass the mount namespace fallback for containerized
workloads?
When dso__find_dbginfo_type() iterates through the types and calls
dso__get_filename() for DSO_BINARY_TYPE__DEBUGLINK, it performs direct file
I/O on the host path:
tools/perf/util/dso.c:dso__read_binary_type_filename() {
...
if (!is_regular_file(filename)) {
ret = -1;
break;
}
...
}
If the binary is containerized and not present on the host at that exact
path, this check fails and returns -1. This early error return causes
dso__get_filename() to exit via "goto out" before it can attempt the mount
namespace fallback logic:
tools/perf/util/dso.c:dso__get_filename() {
...
if (dso__read_binary_type_filename(dso, type, root_dir, name, PATH_MAX))
goto out;
if (!is_regular_file(name)) {
...
new_name = dso__filename_with_chroot(dso, name);
...
}
Can the early file existence check in dso__read_binary_type_filename() be
adjusted so it does not permanently bypass dso__filename_with_chroot()?
[Severity: Low]
Does this code incorrectly format fallback paths for local files?
In dso__read_binary_type_filename() for DSO_BINARY_TYPE__DEBUGLINK, the
directory component is extracted by searching backward for a slash:
tools/perf/util/dso.c:dso__read_binary_type_filename() {
...
last_slash = filename + len;
while (last_slash != filename && *last_slash != '/')
last_slash--;
strncpy(dso_dir, filename, last_slash - filename);
dso_dir[last_slash-filename] = '\0';
...
}
If a DSO is specified without a path separator (e.g., a local file like
"vmlinux" in the current directory), last_slash remains equal to filename,
leaving dso_dir as an empty string.
Later in the function, debuglink_paths[i] evaluates the formats:
tools/perf/util/dso.c:dso__read_binary_type_filename() {
...
for (i = 0; i < ARRAY_SIZE(debuglink_paths); i++) {
snprintf(filename, size,
debuglink_paths[i], dso_dir, symfile);
...
}
When evaluating formats like "%s/.debug/%s" against an empty dso_dir, doesn't
this incorrectly generate an absolute path starting from the root directory
(e.g., "/.debug/symfile") instead of a relative path from the current
directory?
> DSO_BINARY_TYPE__NOT_FOUND,
> };
> const enum dso_binary_type *type;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261006234315.920817-1-namhyung@kernel.org?part=2
next prev parent reply other threads:[~2026-10-06 23:54 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 23:43 [PATCH v2 00/10] perf symbol: Properly set DSO binary/symtab types Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 01/10] perf tools: Remove redundant dso data init Namhyung Kim
2026-10-06 23:49 ` sashiko-bot
2026-10-06 23:43 ` [PATCH v2 02/10] perf tools: Try linked debug files for DSO debug info Namhyung Kim
2026-10-06 23:54 ` sashiko-bot [this message]
2026-10-10 5:38 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 03/10] perf symbol: Update symtab type of vmlinux from build-id cache Namhyung Kim
2026-10-06 23:54 ` sashiko-bot
2026-10-06 23:43 ` [PATCH v2 04/10] perf symbol: Set binary/symtab type for split kallsyms Namhyung Kim
2026-10-06 23:58 ` sashiko-bot
2026-10-10 5:42 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 05/10] perf symbol: Set dso symtab type for libbfd Namhyung Kim
2026-10-06 23:57 ` sashiko-bot
2026-10-10 5:49 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 06/10] perf tools: Factor out dso__find_binary_type() Namhyung Kim
2026-10-07 0:04 ` sashiko-bot
2026-10-10 6:17 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 07/10] perf symbol: Set binary type for JIT map DSOs Namhyung Kim
2026-10-06 23:51 ` sashiko-bot
2026-10-06 23:43 ` [PATCH v2 08/10] perf symbol: Do not set binary type from symtab type Namhyung Kim
2026-10-06 23:57 ` sashiko-bot
2026-10-10 6:41 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 09/10] perf annotate: Simplify symbol__disassemble() with dso binary_type Namhyung Kim
2026-10-07 0:01 ` sashiko-bot
2026-10-10 6:47 ` Namhyung Kim
2026-10-06 23:43 ` [PATCH v2 10/10] perf test: Fix dso data tests Namhyung Kim
2026-10-06 23:59 ` sashiko-bot
2026-10-10 6:48 ` Namhyung Kim
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=sashiko-outbox-162537@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.