[PATCH v12 00/11] perf: Support the deferred unwinding infrastructure

Steven Rostedt posted 11 patches 3 months, 1 week ago
There is a newer version of this series
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                      | 410 +++++++++++++++++++++++++++++-
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, 745 insertions(+), 36 deletions(-)
[PATCH v12 00/11] perf: Support the deferred unwinding infrastructure
Posted by Steven Rostedt 3 months, 1 week ago
This is based on top of the deferred unwind core patch series:

 https://lore.kernel.org/linux-trace-kernel/20250701005321.942306427@goodmis.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 can be found here:

  git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git unwind/perf

  Head SHA1: e00f51618c68b5b6fd6054488212504592c9e392

Changes since v11: https://lore.kernel.org/linux-trace-kernel/20250625231541.584226205@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 a real NMI could come in.


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                      | 410 +++++++++++++++++++++++++++++-
 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, 745 insertions(+), 36 deletions(-)
Re: [PATCH v12 00/11] perf: Support the deferred unwinding infrastructure
Posted by Steven Rostedt 3 months, 1 week ago
On Tue, 01 Jul 2025 14:04:10 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> 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

Hmm, patches 5-11 seemed to be dropped, and I sent out 12 patches of
the latest sframe work that I can't find anywhere. I think my ISP is
thinking I'm spamming so it dropped the emails. That's all I can figure.

I originally used kernel.org as my smtp server, but gmail starting
putting my emails into spam because kernel.org can't validate
goodmis.org with DKIM (my DNS has kernel.org set for SPF, but that's
not enough these days :-p).

So I went back to my ISP (hover.com) as my SMTP server, but now I think
it doesn't like my scripts that sends out a series of patches to a lot
of people. It likely thinks I'm a spam bot (although maybe I am!).

I guess I'll change my scripts to use rostedt@kernel.org to send and go
back to using kernel.org as the SMTP server for my scripts. :-/

Expect a resend. Sorry for all the noise.

-- Steve
Re: [PATCH v12 00/11] perf: Support the deferred unwinding infrastructure
Posted by Steven Rostedt 3 months, 1 week ago
On Tue, 1 Jul 2025 15:17:15 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> Hmm, patches 5-11 seemed to be dropped, and I sent out 12 patches of
> the latest sframe work that I can't find anywhere. I think my ISP is
> thinking I'm spamming so it dropped the emails. That's all I can figure.

Hah! After I write this, my patches start showing up! :-p

OK, no resend.

-- Steve