From: Steven Rostedt <rostedt@goodmis.org>
To: Jens Remus <jremus@linux.ibm.com>
Cc: 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>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Namhyung Kim <namhyung@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>,
Jens Axboe <axboe@kernel.dk>, Florian Weimer <fweimer@redhat.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>
Subject: Re: [PATCH v12 08/11] perf tools: Minimal CALLCHAIN_DEFERRED support
Date: Wed, 2 Jul 2025 12:28:37 -0400 [thread overview]
Message-ID: <20250702122837.4bb6f259@batman.local.home> (raw)
In-Reply-To: <51903e66-56bc-42a4-b80c-9c3223e2a48a@linux.ibm.com>
On Wed, 2 Jul 2025 14:23:24 +0200
Jens Remus <jremus@linux.ibm.com> wrote:
> > +struct perf_record_callchain_deferred {
> > + struct perf_event_header header;
>
> At minimum the timestamp field added to perf with "[PATCH v12 07/11]
> perf: Support deferred user callchains for per CPU events" needs to be
> added here as well:
Thanks for the review.
>
> __u64 timestamp;
>
> Otherwise this and any subsequent enhancements of the perf tools do no
> longer work at all. But probably the timestamp field also needs to be
> used for some purpose?
OK, so this may be part of the discussion about using this as a
timestamp. The timestamp is the timestamp given by the deferred trace
infrastructure. It holds the time that this stack trace is valid for.
But that's assuming that the timestamp is the same as what perf is
using.
In case of dropped events, we could have the case of:
system_call() {
<nmi> {
take kernel stack trace
ask for deferred trace.
[EVENTS START DROPPING HERE]
}
Call deferred callback to record trace [ BUT IS DROPPED ]
}
system_call() {
<nmi> {
take kernel stack trace
ask for deferred trace [ STILL DROPPING ]
}
[ READER CATCHES UP AND STARTS READING EVENTS AGAIN]
Call deferred callback to record trace
}
The user space tool will see that kernel stack traces of the first
system call, then it will see events dropped, and then it will see the
deferred user space stack trace of the second call.
If the timestamps are in sync with perf and what is passed in, then the
tool will see that the kernel stack traces from the first system call
are older than the timestamp of the user stack trace and know that they
are not related.
Without either saving the timestamp along with the kernel stack traces,
or having the timestamps in sync, user space will not know whether or
not if the user space stack trace of the second system call belongs to
the kernel stack traces that were recorded in the first system call.
I guess the question is, do we just not associate stack traces beyond
where events are dropped? If so, we don't even need to save the
timestamp.
-- Steve
>
> > + __u64 nr;
> > + __u64 ips[];
> > +};
next prev parent reply other threads:[~2025-07-02 16:28 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 18:04 [PATCH v12 00/11] perf: Support the deferred unwinding infrastructure Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 01/11] perf: Remove get_perf_callchain() init_nr argument Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 02/11] perf: Have get_perf_callchain() return NULL if crosstask and user are set Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 03/11] perf: Use current->flags & PF_KTHREAD|PF_USER_WORKER instead of current->mm == NULL Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 04/11] perf: Simplify get_perf_callchain() user logic Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 05/11] perf: Skip user unwind if the task is a kernel thread Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 06/11] perf: Support deferred user callchains Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 07/11] perf: Support deferred user callchains for per CPU events Steven Rostedt
2025-07-02 12:20 ` Jens Remus
2025-07-01 18:04 ` [PATCH v12 08/11] perf tools: Minimal CALLCHAIN_DEFERRED support Steven Rostedt
2025-07-02 12:23 ` Jens Remus
2025-07-02 16:28 ` Steven Rostedt [this message]
2025-07-01 18:04 ` [PATCH v12 09/11] perf record: Enable defer_callchain for user callchains Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 10/11] perf script: Display PERF_RECORD_CALLCHAIN_DEFERRED Steven Rostedt
2025-07-01 18:04 ` [PATCH v12 11/11] perf tools: Merge deferred user callchains Steven Rostedt
2025-07-01 19:17 ` [PATCH v12 00/11] perf: Support the deferred unwinding infrastructure Steven Rostedt
2025-07-01 19:24 ` Steven Rostedt
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=20250702122837.4bb6f259@batman.local.home \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=axboe@kernel.dk \
--cc=beaub@linux.microsoft.com \
--cc=bpf@vger.kernel.org \
--cc=fweimer@redhat.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=indu.bhagat@oracle.com \
--cc=jemarch@gnu.org \
--cc=jolsa@kernel.org \
--cc=jpoimboe@kernel.org \
--cc=jremus@linux.ibm.com \
--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=namhyung@kernel.org \
--cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox