From: Namhyung Kim <namhyung@kernel.org>
To: Jens Remus <jremus@linux.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Steven Rostedt <rostedt@kernel.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
bpf@vger.kernel.org, x86@kernel.org,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Josh Poimboeuf <jpoimboe@kernel.org>,
Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andrii Nakryiko <andrii@kernel.org>,
Indu Bhagat <indu.bhagat@oracle.com>,
"Jose E. Marchesi" <jemarch@gnu.org>,
Beau Belgrave <beaub@linux.microsoft.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Florian Weimer <fweimer@redhat.com>, Sam James <sam@gentoo.org>,
Kees Cook <kees@kernel.org>,
Carlos O'Donell <codonell@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH v16 4/4] perf tools: Merge deferred user callchains
Date: Wed, 12 Nov 2025 14:38:34 -0800 [thread overview]
Message-ID: <aRUMauhbs_jJ6-3P@google.com> (raw)
In-Reply-To: <f543231e-a71c-4600-9cf3-f999ca104d86@linux.ibm.com>
Hello,
On Wed, Nov 12, 2025 at 11:05:59AM +0100, Jens Remus wrote:
> Hello Namhyung,
>
> could you please adapt your patches from this series to Peter's latest
> changes to unwind user and related perf support, especially his new
> version c69993ecdd4d ("perf: Support deferred user unwind") available
> at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
Sure, will take a look.
Thanks,
Namhyung
>
> On 10/24/2025 3:02 PM, Peter Zijlstra wrote:
> > On Thu, Oct 02, 2025 at 01:49:38PM -0400, Steven Rostedt wrote:
> >> On Mon, 08 Sep 2025 13:53:23 -0400
> >> Steven Rostedt <rostedt@kernel.org> wrote:
> >>
> >>> +static int evlist__deliver_deferred_samples(struct evlist *evlist,
> >>> + const struct perf_tool *tool,
> >>> + union perf_event *event,
> >>> + struct perf_sample *sample,
> >>> + struct machine *machine)
> >>> +{
> >>> + struct deferred_event *de, *tmp;
> >>> + struct evsel *evsel;
> >>> + int ret = 0;
> >>> +
> >>> + if (!tool->merge_deferred_callchains) {
> >>> + evsel = evlist__id2evsel(evlist, sample->id);
> >>> + return tool->callchain_deferred(tool, event, sample,
> >>> + evsel, machine);
> >>> + }
> >>> +
> >>> + list_for_each_entry_safe(de, tmp, &evlist->deferred_samples, list) {
> >>> + struct perf_sample orig_sample;
> >>
> >> orig_sample is not initialized and can then contain junk.
> >>
> >>> +
> >>> + ret = evlist__parse_sample(evlist, de->event, &orig_sample);
> >>> + if (ret < 0) {
> >>> + pr_err("failed to parse original sample\n");
> >>> + break;
> >>> + }
> >>> +
> >>> + if (sample->tid != orig_sample.tid)
> >>> + continue;
> >>> +
> >>> + if (event->callchain_deferred.cookie == orig_sample.deferred_cookie)
> >>> + sample__merge_deferred_callchain(&orig_sample, sample);
> >>
> >> The sample__merge_deferred_callchain() initializes both
> >> orig_sample.deferred_callchain and the callchain. But now that it's not
> >> being called, it can cause the below free to happen with junk as the
> >> callchain. This needs:
> >>
> >> else
> >> orig_sample.deferred_callchain = false;
> >
> > Ah, so I saw crashes from here and just deleted both free()s and got on
> > with things ;-)
>
> This needs to be properly resolved. In the meantime I am using Steven's
> suggestion above to continue my work on unwind user sframe (s390).
>
> >
> >>> +
> >>> + evsel = evlist__id2evsel(evlist, orig_sample.id);
> >>> + ret = evlist__deliver_sample(evlist, tool, de->event,
> >>> + &orig_sample, evsel,> machine); +
> >>> + if (orig_sample.deferred_callchain)
> >>> + free(orig_sample.callchain);
> >>> +
> >>> + list_del(&de->list);
> >>> + free(de);
> >>> +
> >>> + if (ret)
> >>> + break;
> >>> + }
> >>> + return ret;
> >>> +}
> >>
> >> -- Steve
>
> Thanks and regards,
> Jens
> --
> Jens Remus
> Linux on Z Development (D3303)
> +49-7031-16-1128 Office
> jremus@de.ibm.com
>
> IBM
>
> IBM Deutschland Research & Development GmbH; Vorsitzender des Aufsichtsrats: Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der Gesellschaft: Böblingen; Registergericht: Amtsgericht Stuttgart, HRB 243294
> IBM Data Privacy Statement: https://www.ibm.com/privacy/
>
next prev parent reply other threads:[~2025-11-12 22:38 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-08 17:53 [PATCH v16 0/4] perf tool: Support the deferred unwinding infrastructure Steven Rostedt
2025-09-08 17:53 ` [PATCH v16 1/4] perf tools: Minimal CALLCHAIN_DEFERRED support Steven Rostedt
2025-09-08 17:53 ` [PATCH v16 2/4] perf record: Enable defer_callchain for user callchains Steven Rostedt
2025-09-08 17:53 ` [PATCH v16 3/4] perf script: Display PERF_RECORD_CALLCHAIN_DEFERRED Steven Rostedt
2025-09-08 17:53 ` [PATCH v16 4/4] perf tools: Merge deferred user callchains Steven Rostedt
2025-10-02 17:49 ` Steven Rostedt
2025-10-24 13:02 ` Peter Zijlstra
2025-10-29 0:09 ` Steven Rostedt
2025-10-29 10:38 ` Peter Zijlstra
2025-11-12 10:05 ` Jens Remus
2025-11-12 22:38 ` Namhyung Kim [this message]
2025-11-13 21:42 ` Namhyung Kim
2025-10-24 13:01 ` [PATCH v16 0/4] perf tool: Support the deferred unwinding infrastructure Peter Zijlstra
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=aRUMauhbs_jJ6-3P@google.com \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=beaub@linux.microsoft.com \
--cc=bpf@vger.kernel.org \
--cc=codonell@redhat.com \
--cc=fweimer@redhat.com \
--cc=indu.bhagat@oracle.com \
--cc=jemarch@gnu.org \
--cc=jolsa@kernel.org \
--cc=jpoimboe@kernel.org \
--cc=jremus@linux.ibm.com \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=rostedt@kernel.org \
--cc=sam@gentoo.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/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.