[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250725185512.673587297@kernel.org>
Date: Fri, 25 Jul 2025 14:55:12 -0400
From: Steven Rostedt <rostedt@...nel.org>
To: linux-kernel@...r.kernel.org,
linux-trace-kernel@...r.kernel.org,
bpf@...r.kernel.org,
x86@...nel.org
Cc: Masami Hiramatsu <mhiramat@...nel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Josh Poimboeuf <jpoimboe@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>,
Jiri Olsa <jolsa@...nel.org>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Andrii Nakryiko <andrii@...nel.org>,
Indu Bhagat <indu.bhagat@...cle.com>,
"Jose E. Marchesi" <jemarch@....org>,
Beau Belgrave <beaub@...ux.microsoft.com>,
Jens Remus <jremus@...ux.ibm.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Jens Axboe <axboe@...nel.dk>,
Florian Weimer <fweimer@...hat.com>,
Sam James <sam@...too.org>
Subject: [PATCH v15 00/10] unwind_user: Deferred unwinding infrastructure
Leaving out the prologue about sframes and the rationale for this
change as is on the cover letter of v14.
Changse since v14: https://lore.kernel.org/linux-trace-kernel/20250717004910.297898999@kernel.org/
- Use normal SRCU instead of srcu_lite which is being deprecated
(Paul McKenney)
- Removed the two x86 specific patches.
V14 should have all the changes to address Peter Zijlstras comments.
But Peter is now on vacation for a month, so I'm posting this without
the x86 patches. This only has the core deferred unwinding infrastructure.
The idea is to have this added to the up coming merge window as all
the other patch series rely on it. The reason I would like this patch
series in, is because those other patch series do not rely on each other
and it would be nice to develop them separately with a common code base
that happens to be upstream. Those patch series are:
- The two patches to implement x86:
https://lore.kernel.org/linux-trace-kernel/20250717004958.260781923@kernel.org/
https://lore.kernel.org/linux-trace-kernel/20250717004958.432327787@kernel.org/
- The s390 work:
https://lore.kernel.org/linux-trace-kernel/20250710163522.3195293-1-jremus@linux.ibm.com/
- The perf work:
https://lore.kernel.org/linux-trace-kernel/20250718164119.089692174@kernel.org/
- The ftrace work:
https://patchwork.kernel.org/project/linux-trace-kernel/patch/20250424192612.505622711@goodmis.org/
- The sframe work:
https://patchwork.kernel.org/project/linux-trace-kernel/cover/20250717012848.927473176@kernel.org/
And more is on the way.
Nothing enables this code without an architecture to enable it, but
similar to the PREEMPT_RT being added to the kernel before it was enabled,
it would be very useful to have this added as well. That will allow the
above code to be worked on in parallel and also stop the confusion of
releasing many series together for every iteration of this one.
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
unwind/core
Head SHA1: ee18ef301d2ed23c405a9f55275cadd14ca47645
Josh Poimboeuf (3):
unwind_user: Add user space unwinding API with frame pointer support
unwind_user/deferred: Add unwind cache
unwind_user/deferred: Add deferred unwinding interface
Steven Rostedt (7):
unwind_user/deferred: Add unwind_user_faultable()
unwind_user/deferred: Make unwind deferral requests NMI-safe
unwind deferred: Use bitmask to determine which callbacks to call
unwind deferred: Add unwind_completed mask to stop spurious callbacks
unwind: Add USED bit to only have one conditional on way back to user space
unwind deferred: Use SRCU unwind_deferred_task_work()
unwind: Finish up unwind when a task exits
----
MAINTAINERS | 8 +
arch/Kconfig | 7 +
include/asm-generic/Kbuild | 1 +
include/asm-generic/unwind_user.h | 5 +
include/linux/entry-common.h | 2 +
include/linux/sched.h | 5 +
include/linux/unwind_deferred.h | 81 ++++++++
include/linux/unwind_deferred_types.h | 39 ++++
include/linux/unwind_user.h | 14 ++
include/linux/unwind_user_types.h | 44 +++++
kernel/Makefile | 1 +
kernel/exit.c | 2 +
kernel/fork.c | 4 +
kernel/unwind/Makefile | 1 +
kernel/unwind/deferred.c | 362 ++++++++++++++++++++++++++++++++++
kernel/unwind/user.c | 128 ++++++++++++
16 files changed, 704 insertions(+)
create mode 100644 include/asm-generic/unwind_user.h
create mode 100644 include/linux/unwind_deferred.h
create mode 100644 include/linux/unwind_deferred_types.h
create mode 100644 include/linux/unwind_user.h
create mode 100644 include/linux/unwind_user_types.h
create mode 100644 kernel/unwind/Makefile
create mode 100644 kernel/unwind/deferred.c
create mode 100644 kernel/unwind/user.c
Powered by blists - more mailing lists