linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Steven Rostedt <rostedt@kernel.org>
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>,
	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>,
	Jens Remus <jremus@linux.ibm.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jens Axboe <axboe@kernel.dk>, Florian Weimer <fweimer@redhat.com>,
	Sam James <sam@gentoo.org>
Subject: Re: [PATCH v13 00/11] perf: Support the deferred unwinding infrastructure
Date: Fri, 11 Jul 2025 13:26:28 -0700	[thread overview]
Message-ID: <aHFzdCv3-BRw9btW@google.com> (raw)
In-Reply-To: <20250708020003.565862284@kernel.org>

Hi Steve,

On Mon, Jul 07, 2025 at 10:00:03PM -0400, Steven Rostedt wrote:
> This is based on top of the deferred unwind core patch series:
> 
>  https://lore.kernel.org/linux-trace-kernel/20250708012239.268642741@kernel.org/
>    git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
>      unwind/core
> 
> This series implements the perf interface to use deferred user space stack
> tracing.
> 
> The code for this series is located here:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
> unwind/perf
> 
> Changes since v12: https://lore.kernel.org/linux-trace-kernel/20250701180410.755491417@goodmis.org/
> 
> - Also check against PF_USER_WORKER as io workers do not have PF_KTHREAD
>   set.
> 
> - Removed deferred_request_nmi() and have NMIs just use the normal
>   deferred_request() function. As Peter Zijlstra has stated, in_nmi() can
>   nest because some exceptions set in_nmi() and another NMI could come in.
> 
> - Removed use of timestamp. The deferred unwind has gone back to using
>   cookies, and perf doesn't use the cookie. This means the
>   struct perf_callchain_deferred_event is not modified.

What about adding the cookies in the records to handle lost data?  Even
if it's not necessary to match callchains to samples, it still needs to
reject invalid callchains across the losts.  Maybe it can just flush
pending samples when it sees LOST records and not try to match them but
having the cookies will handle it more accurately as some callchains may
be valid after the LOST.

Thanks,
Namhyung

> 
> Head SHA1: 3d88d03d533ede8d2d513942e768607aa9279c4b
> 
> 
> Josh Poimboeuf (5):
>       perf: Remove get_perf_callchain() init_nr argument
>       perf: Have get_perf_callchain() return NULL if crosstask and user are set
>       perf: Simplify get_perf_callchain() user logic
>       perf: Skip user unwind if the task is a kernel thread
>       perf: Support deferred user callchains
> 
> Namhyung Kim (4):
>       perf tools: Minimal CALLCHAIN_DEFERRED support
>       perf record: Enable defer_callchain for user callchains
>       perf script: Display PERF_RECORD_CALLCHAIN_DEFERRED
>       perf tools: Merge deferred user callchains
> 
> Steven Rostedt (2):
>       perf: Use current->flags & PF_KTHREAD|PF_USER_WORKER instead of current->mm == NULL
>       perf: Support deferred user callchains for per CPU events
> 
> ----
>  include/linux/perf_event.h                |  13 +-
>  include/uapi/linux/perf_event.h           |  19 +-
>  kernel/bpf/stackmap.c                     |   8 +-
>  kernel/events/callchain.c                 |  49 ++--
>  kernel/events/core.c                      | 407 +++++++++++++++++++++++++++++-
>  tools/include/uapi/linux/perf_event.h     |  19 +-
>  tools/lib/perf/include/perf/event.h       |   7 +
>  tools/perf/Documentation/perf-script.txt  |   5 +
>  tools/perf/builtin-script.c               |  92 +++++++
>  tools/perf/util/callchain.c               |  24 ++
>  tools/perf/util/callchain.h               |   3 +
>  tools/perf/util/event.c                   |   1 +
>  tools/perf/util/evlist.c                  |   1 +
>  tools/perf/util/evlist.h                  |   1 +
>  tools/perf/util/evsel.c                   |  39 +++
>  tools/perf/util/evsel.h                   |   1 +
>  tools/perf/util/machine.c                 |   1 +
>  tools/perf/util/perf_event_attr_fprintf.c |   1 +
>  tools/perf/util/sample.h                  |   3 +-
>  tools/perf/util/session.c                 |  78 ++++++
>  tools/perf/util/tool.c                    |   2 +
>  tools/perf/util/tool.h                    |   4 +-
>  22 files changed, 742 insertions(+), 36 deletions(-)

  parent reply	other threads:[~2025-07-11 20:26 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-08  2:00 [PATCH v13 00/11] perf: Support the deferred unwinding infrastructure Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 01/11] perf: Remove get_perf_callchain() init_nr argument Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 02/11] perf: Have get_perf_callchain() return NULL if crosstask and user are set Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 03/11] perf: Use current->flags & PF_KTHREAD|PF_USER_WORKER instead of current->mm == NULL Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 04/11] perf: Simplify get_perf_callchain() user logic Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 05/11] perf: Skip user unwind if the task is a kernel thread Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 06/11] perf: Support deferred user callchains Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 07/11] perf: Support deferred user callchains for per CPU events Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 08/11] perf tools: Minimal CALLCHAIN_DEFERRED support Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 09/11] perf record: Enable defer_callchain for user callchains Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 10/11] perf script: Display PERF_RECORD_CALLCHAIN_DEFERRED Steven Rostedt
2025-07-08  2:00 ` [PATCH v13 11/11] perf tools: Merge deferred user callchains Steven Rostedt
2025-07-11 20:26 ` Namhyung Kim [this message]
2025-07-11 20:56   ` [PATCH v13 00/11] perf: Support the deferred unwinding infrastructure 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=aHFzdCv3-BRw9btW@google.com \
    --to=namhyung@kernel.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=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=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).