From: Jens Remus <jremus@linux.ibm.com>
To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
linux-s390@vger.kernel.org, bpf@vger.kernel.org, x86@kernel.org,
Steven Rostedt <rostedt@kernel.org>
Cc: Jens Remus <jremus@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Ilya Leoshkevich <iii@linux.ibm.com>,
Josh Poimboeuf <jpoimboe@kernel.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Arnaldo Carvalho de Melo <acme@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>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Florian Weimer <fweimer@redhat.com>, Kees Cook <kees@kernel.org>,
"Carlos O'Donell" <codonell@redhat.com>,
Sam James <sam@gentoo.org>, Dylan Hatch <dylanbhatch@google.com>
Subject: [PATCH v4 10/12] unwind_user: Introduce FP/RA recovery rule unknown
Date: Tue, 27 Jan 2026 16:19:23 +0100 [thread overview]
Message-ID: <20260127151926.2805123-11-jremus@linux.ibm.com> (raw)
In-Reply-To: <20260127151926.2805123-1-jremus@linux.ibm.com>
Add support for the unwind user FP/RA recovery rule "unknown". For the
frame pointer (FP) set the FP value to zero, so that subsequent unwind
next frame that rely on FP fail. For the return address (RA) treat as
error.
This enables to implement support for unwinding of user space using back
chain on s390 with a subsequent commit, which can only unwind SP and RA,
but not FP.
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
---
Notes (jremus):
Changes in RFC v3:
- New patch. Prerequirement to implement unwind user fp using back
chain on s390.
include/linux/unwind_user_types.h | 1 +
kernel/unwind/user.c | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/include/linux/unwind_user_types.h b/include/linux/unwind_user_types.h
index 89c71a4553b2..fac8f470b597 100644
--- a/include/linux/unwind_user_types.h
+++ b/include/linux/unwind_user_types.h
@@ -45,6 +45,7 @@ struct unwind_user_cfa_rule_data {
};
enum unwind_user_rule {
+ UNWIND_USER_RULE_ZERO, /* entity = 0 */
UNWIND_USER_RULE_RETAIN, /* entity = entity */
UNWIND_USER_RULE_CFA_OFFSET, /* entity = CFA + offset */
UNWIND_USER_RULE_REG_OFFSET, /* entity = register + offset */
diff --git a/kernel/unwind/user.c b/kernel/unwind/user.c
index e21d088f7543..036328cb9ee8 100644
--- a/kernel/unwind/user.c
+++ b/kernel/unwind/user.c
@@ -114,6 +114,10 @@ static int unwind_user_next_common(struct unwind_user_state *state,
return -EINVAL;
fp += frame->fp.offset;
break;
+ case UNWIND_USER_RULE_ZERO:
+ /* FP cannot be unwound. Not an error. Set to zero. */
+ fp = 0;
+ break;
default:
WARN_ON_ONCE(1);
return -EINVAL;
--
2.51.0
next prev parent reply other threads:[~2026-01-27 15:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-27 15:19 [PATCH v4 00/12] s390: SFrame user space unwinding Jens Remus
2026-01-27 15:19 ` [PATCH v4 01/12] s390: asm/dwarf.h should only be included in assembly files Jens Remus
2026-01-27 15:19 ` [PATCH v4 02/12] s390/vdso: Avoid emitting DWARF CFI for non-vDSO Jens Remus
2026-01-27 15:19 ` [PATCH v4 03/12] s390/vdso: Keep function symbols in vDSO Jens Remus
2026-01-27 15:19 ` [PATCH v4 04/12] s390/vdso: Enable SFrame V3 generation " Jens Remus
2026-01-27 15:19 ` [PATCH v4 05/12] unwind_user: Enable archs that define CFA = SP_callsite + offset Jens Remus
2026-01-27 15:19 ` [PATCH v4 06/12] unwind_user/sframe: Enable archs with encoded SFrame CFA offsets Jens Remus
2026-01-27 15:19 ` [PATCH v4 07/12] s390/ptrace: Convert function macros to inline functions Jens Remus
2026-01-27 15:19 ` [PATCH v4 08/12] s390/ptrace: Provide frame_pointer() Jens Remus
2026-01-27 15:19 ` [PATCH v4 09/12] s390/unwind_user/sframe: Enable sframe unwinding on s390 Jens Remus
2026-01-27 15:19 ` Jens Remus [this message]
2026-01-27 15:19 ` [PATCH v4 11/12] unwind_user/fp: Use arch-specific helper to initialize FP frame Jens Remus
2026-01-27 15:19 ` [PATCH v4 12/12] s390/unwind_user/fp: Enable back chain unwinding of user space Jens Remus
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=20260127151926.2805123-11-jremus@linux.ibm.com \
--to=jremus@linux.ibm.com \
--cc=acme@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=beaub@linux.microsoft.com \
--cc=bpf@vger.kernel.org \
--cc=codonell@redhat.com \
--cc=dylanbhatch@google.com \
--cc=fweimer@redhat.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=indu.bhagat@oracle.com \
--cc=jemarch@gnu.org \
--cc=jolsa@kernel.org \
--cc=jpoimboe@kernel.org \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@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=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