From: Steven Rostedt <rostedt@kernel.org>
To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
bpf@vger.kernel.org, x86@kernel.org
Cc: 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>,
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: [PATCH v8 12/12] unwind_user/sframe: Add prctl() interface for registering .sframe sections
Date: Mon, 07 Jul 2025 22:11:27 -0400 [thread overview]
Message-ID: <20250708021200.397301537@kernel.org> (raw)
In-Reply-To: 20250708021115.894007410@kernel.org
From: Josh Poimboeuf <jpoimboe@kernel.org>
The kernel doesn't have direct visibility to the ELF contents of shared
libraries. Add some prctl() interfaces which allow glibc to tell the
kernel where to find .sframe sections.
[
This adds an interface for prctl() for testing loading of sframes for
libraries. But this interface should really be a system call. This patch
is for testing purposes only and should not be applied to mainline.
]
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
include/uapi/linux/prctl.h | 6 +++++-
kernel/sys.c | 9 +++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 43dec6eed559..c575cf7151b1 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -351,7 +351,7 @@ struct prctl_mm_map {
* configuration. All bits may be locked via this call, including
* undefined bits.
*/
-#define PR_LOCK_SHADOW_STACK_STATUS 76
+#define PR_LOCK_SHADOW_STACK_STATUS 76
/*
* Controls the mode of timer_create() for CRIU restore operations.
@@ -371,4 +371,8 @@ struct prctl_mm_map {
# define PR_FUTEX_HASH_GET_SLOTS 2
# define PR_FUTEX_HASH_GET_IMMUTABLE 3
+/* SFRAME management */
+#define PR_ADD_SFRAME 79
+#define PR_REMOVE_SFRAME 80
+
#endif /* _LINUX_PRCTL_H */
diff --git a/kernel/sys.c b/kernel/sys.c
index adc0de0aa364..cf788e66dc86 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -65,6 +65,7 @@
#include <linux/rcupdate.h>
#include <linux/uidgid.h>
#include <linux/cred.h>
+#include <linux/sframe.h>
#include <linux/nospec.h>
@@ -2824,6 +2825,14 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
case PR_FUTEX_HASH:
error = futex_hash_prctl(arg2, arg3, arg4);
break;
+ case PR_ADD_SFRAME:
+ error = sframe_add_section(arg2, arg3, arg4, arg5);
+ break;
+ case PR_REMOVE_SFRAME:
+ if (arg3 || arg4 || arg5)
+ return -EINVAL;
+ error = sframe_remove_section(arg2);
+ break;
default:
trace_task_prctl_unknown(option, arg2, arg3, arg4, arg5);
error = -EINVAL;
--
2.47.2
prev parent reply other threads:[~2025-07-08 2:12 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-08 2:11 [PATCH v8 00/12] unwind_deferred: Implement sframe handling Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 01/12] unwind_user/sframe: Add support for reading .sframe headers Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 02/12] unwind_user/sframe: Store sframe section data in per-mm maple tree Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 03/12] x86/uaccess: Add unsafe_copy_from_user() implementation Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 04/12] unwind_user/sframe: Add support for reading .sframe contents Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 05/12] unwind_user/sframe: Detect .sframe sections in executables Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 06/12] unwind_user/sframe: Wire up unwind_user to sframe Steven Rostedt
2025-07-08 19:58 ` Mathieu Desnoyers
2025-07-08 20:11 ` Steven Rostedt
2025-07-09 7:58 ` Jens Remus
2025-07-09 13:46 ` Mathieu Desnoyers
2025-07-09 13:51 ` Mathieu Desnoyers
2025-07-09 14:06 ` Steven Rostedt
2025-07-09 14:10 ` Mathieu Desnoyers
2025-07-09 14:29 ` Steven Rostedt
2025-07-09 15:14 ` Mathieu Desnoyers
2025-07-10 8:03 ` Jens Remus
2025-07-10 9:26 ` Jens Remus
2025-07-10 15:30 ` Steven Rostedt
2025-07-10 20:51 ` Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 07/12] unwind_user/sframe/x86: Enable sframe unwinding on x86 Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 08/12] unwind_user/sframe: Remove .sframe section on detected corruption Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 09/12] unwind_user/sframe: Show file name in debug output Steven Rostedt
2025-07-08 2:11 ` [PATCH v8 10/12] unwind_user/sframe: Enable debugging in uaccess regions Steven Rostedt
2025-07-08 3:38 ` Linus Torvalds
2025-07-08 13:23 ` Steven Rostedt
2025-07-08 14:34 ` Josh Poimboeuf
2025-07-08 14:41 ` Steven Rostedt
2025-07-08 15:53 ` Linus Torvalds
2025-07-08 16:31 ` Steven Rostedt
2025-07-08 18:57 ` Josh Poimboeuf
2025-07-08 15:52 ` Linus Torvalds
2025-07-08 2:11 ` [PATCH v8 11/12] unwind_user/sframe: Add .sframe validation option Steven Rostedt
2025-07-08 2:11 ` Steven Rostedt [this message]
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=20250708021200.397301537@kernel.org \
--to=rostedt@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=namhyung@kernel.org \
--cc=peterz@infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.