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.297898...@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.260781...@kernel.org/ https://lore.kernel.org/linux-trace-kernel/20250717004958.432327...@kernel.org/ - The s390 work: https://lore.kernel.org/linux-trace-kernel/20250710163522.3195293-1-jre...@linux.ibm.com/ - The perf work: https://lore.kernel.org/linux-trace-kernel/20250718164119.089692...@kernel.org/ - The ftrace work: https://patchwork.kernel.org/project/linux-trace-kernel/patch/20250424192612.505622...@goodmis.org/ - The sframe work: https://patchwork.kernel.org/project/linux-trace-kernel/cover/20250717012848.927473...@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