From: "Falcon, Thomas" <thomas.falcon@intel.com>
To: "sashiko-reviews@lists.linux.dev" <sashiko-reviews@lists.linux.dev>
Cc: "linux-perf-users@vger.kernel.org" <linux-perf-users@vger.kernel.org>
Subject: Re: [PATCH v2 6/6] perf c2c: print memory region data with stdio output
Date: Mon, 27 Jul 2026 17:05:11 +0000 [thread overview]
Message-ID: <81f84b17c2f620d45a27e3cc00ea0d837b7b362e.camel@intel.com> (raw)
In-Reply-To: <20260714005711.709741F000E9@smtp.kernel.org>
On Tue, 2026-07-14 at 00:57 +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential
> issue(s) to consider:
> - [Medium] The perf c2c tool structure omits the `.feature` callback,
> breaking `perf_env` initialization in pipe mode.
> - [Low] Implicit reliance on POSIX libc headers violates musl build
> compatibility rules (missing `<stdio.h>`).
> --
>
> --- Patch [6]: [PATCH v2 6/6] perf c2c: print memory region data with
> stdio output ---
> commit 210b29f2c6ae9c7cc910fd9994d1e0b92078eec2
> Author: Thomas Falcon <thomas.falcon@intel.com>
>
> perf c2c: print memory region data with stdio output
>
> Print memory range data in perf-c2c subcommand. Only available in
> stdio
> mode currently. If memory ranges are not supported or present,
> print
> nothing.
>
> > diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
> > index cba2e9f21ae7c..68348a93bd331 100644
> > --- a/tools/perf/builtin-c2c.c
> > +++ b/tools/perf/builtin-c2c.c
> > @@ -2634,6 +2634,34 @@ static void print_c2c_info(FILE *out, struct
> > perf_session *session)
> > fprintf(out, " Cacheline data grouping : %s\n",
> > c2c.cl_sort);
> > }
> >
> > +
> > +static void print_memory_ranges_info(FILE *out, struct
> > perf_session *session)
> > +{
>
> [Severity: Low]
> Does this code rely on implicit header inclusion?
>
> The new print_memory_ranges_info() function uses FILE and fprintf,
> but the
> patch doesn't explicitly include <stdio.h>. Can this cause the code
> to fail to
> compile under musl libc due to missing declarations?
Existing functions (print_c2c__display_stats(),
print_shared_cacheline_info(), print_c2c_info()) use FILE and fprintf()
without any issue.
>
> > + struct perf_env *env = perf_session__env(session);
> > + int nr_ranges = 0;
> > +
> > + if (!perf_header__has_feat(&session->header,
> > HEADER_MEMORY_RANGES))
> > + return;
> > + nr_ranges = env->nr_memory_ranges;
> > + if (nr_ranges == 0) {
> > + pr_debug("No memory ranges found, skipping\n");
> > + return;
> > + }
> > +
> > + fprintf(out, "\n");
> > + fprintf(out,
> > "=================================================\n");
> > + fprintf(out, " Memory
> > Ranges \n");
> > + fprintf(out,
> > "=================================================\n");
> > +
> > + for (int i = 0; i < nr_ranges; i++) {
> > + struct memory_range *r = &env->memory_ranges[i];
> > +
> > + fprintf(out, "Range %d: [0x%016" PRIx64 "-0x%016"
> > PRIx64 "] Node %d, local region id %u, remote region id %u\n",
> > + i, r->base, r->base + r->length - 1, r-
> > >node,
> > + r->local_region_id, r->remote_region_id);
> > + }
> > +}
>
> [Severity: Medium]
> Will this silently fail to display memory ranges when perf is run in
> pipe
> mode?
Pipe mode is not supported on perf-c2c.
Thanks,
Tom
>
> The tool initializes its callbacks in perf_c2c__report() like this:
>
> perf_tool__init(&c2c.tool, /*ordered_events=*/true);
> c2c.tool.sample = process_sample_event;
> c2c.tool.mmap = perf_event__process_mmap;
>
> Because the .feature callback is missing here, feature events are
> dropped in
> pipe mode, so perf_env is not populated with memory ranges. Although
> the
> callback omission was pre-existing, doesn't it actively break the
> functionality introduced in this patch?
>
> [ ... ]
>
next prev parent reply other threads:[~2026-07-27 17:05 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 0:43 [PATCH v2 0/6] perf: Add support for memory region/range reporting Thomas Falcon
2026-07-14 0:43 ` [PATCH v2 1/6] perf mem: Fix size tracking for mem_lvl's in perf_script__meminfo_scnprintf() Thomas Falcon
2026-07-14 0:51 ` sashiko-bot
2026-07-27 17:06 ` Falcon, Thomas
2026-07-15 6:59 ` Mi, Dapeng
2026-07-14 0:43 ` [PATCH v2 2/6] perf mem: Add support for printing PERF_MEM_LVLNUM_L0 Thomas Falcon
2026-07-15 7:11 ` Mi, Dapeng
2026-07-28 17:13 ` Namhyung Kim
2026-07-14 0:43 ` [PATCH v2 3/6] perf tools: Show memory region in perf-c2c subcommand Thomas Falcon
2026-07-14 0:56 ` sashiko-bot
2026-07-27 16:37 ` Falcon, Thomas
2026-07-28 17:17 ` Namhyung Kim
2026-07-14 0:43 ` [PATCH v2 4/6] perf tools: Show memory region in perf-script subcommand Thomas Falcon
2026-07-14 0:59 ` sashiko-bot
2026-07-28 17:18 ` Namhyung Kim
2026-07-14 0:43 ` [PATCH v2 5/6] perf header: Support memory ranges Thomas Falcon
2026-07-28 17:33 ` Namhyung Kim
2026-07-28 21:33 ` Falcon, Thomas
2026-07-14 0:43 ` [PATCH v2 6/6] perf c2c: print memory region data with stdio output Thomas Falcon
2026-07-14 0:57 ` sashiko-bot
2026-07-27 17:05 ` Falcon, Thomas [this message]
2026-07-28 17:34 ` 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=81f84b17c2f620d45a27e3cc00ea0d837b7b362e.camel@intel.com \
--to=thomas.falcon@intel.com \
--cc=linux-perf-users@vger.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.