public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
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: [RFC PATCH v3 15/17] unwind_user: Introduce FP/RA location unknown
Date: Mon,  8 Dec 2025 18:15:57 +0100	[thread overview]
Message-ID: <20251208171559.2029709-16-jremus@linux.ibm.com> (raw)
In-Reply-To: <20251208171559.2029709-1-jremus@linux.ibm.com>

Add support for an unwind user method to specify that the FP/RA location
is 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 4f78999a0750..f44035b98f7c 100644
--- a/include/linux/unwind_user_types.h
+++ b/include/linux/unwind_user_types.h
@@ -28,6 +28,7 @@ struct unwind_stacktrace {
 };
 
 enum unwind_user_loc {
+	UNWIND_USER_LOC_UNKNOWN,
 	UNWIND_USER_LOC_RETAIN,
 	UNWIND_USER_LOC_STACK,
 	UNWIND_USER_LOC_REG,
diff --git a/kernel/unwind/user.c b/kernel/unwind/user.c
index 45f82ed28fcb..7d06bdbc7f0d 100644
--- a/kernel/unwind/user.c
+++ b/kernel/unwind/user.c
@@ -93,6 +93,10 @@ static int unwind_user_next_common(struct unwind_user_state *state,
 		if (!state->topmost || unwind_user_get_reg(&fp, frame->fp.regnum))
 			return -EINVAL;
 		break;
+	case UNWIND_USER_LOC_UNKNOWN:
+		/* FP cannot be unwound. Not an error. Set to zero. */
+		fp = 0;
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		return -EINVAL;
-- 
2.51.0


  parent reply	other threads:[~2025-12-08 17:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-08 17:15 [RFC PATCH v3 00/17] s390: SFrame user space unwinding Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 01/17] unwind_user: Enhance comments on get CFA, FP, and RA Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 02/17] unwind_user/fp: Use dummies instead of ifdef Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 03/17] x86/unwind_user: Guard unwind_user_word_size() by UNWIND_USER Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 04/17] x86/unwind_user: Simplify unwind_user_word_size() Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 05/17] s390: asm/dwarf.h should only be included in assembly files Jens Remus
2025-12-10 15:16   ` Heiko Carstens
2025-12-11  9:43     ` Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 06/17] s390/vdso: Avoid emitting DWARF CFI for non-vDSO Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 07/17] s390/vdso: Keep function symbols in vDSO Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 08/17] s390/vdso: Enable SFrame generation " Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 09/17] unwind_user: Enable archs that define CFA = SP_callsite + offset Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 10/17] unwind_user: Enable archs that pass RA in a register Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 11/17] unwind_user: Enable archs that save RA/FP in other registers Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 12/17] unwind_user/sframe: Enable archs with encoded SFrame CFA offsets Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 13/17] s390/ptrace: Provide frame_pointer() Jens Remus
2025-12-10 15:19   ` Heiko Carstens
2025-12-08 17:15 ` [RFC PATCH v3 14/17] s390/unwind_user/sframe: Enable HAVE_UNWIND_USER_SFRAME Jens Remus
2025-12-10 15:10   ` Heiko Carstens
2025-12-12  8:13     ` Jens Remus
2025-12-08 17:15 ` Jens Remus [this message]
2025-12-08 17:15 ` [RFC PATCH v3 16/17] unwind_user/fp: Use arch-specific helper to initialize FP frame Jens Remus
2025-12-08 17:15 ` [RFC PATCH v3 17/17] s390/unwind_user/fp: Enable back chain unwinding of user space Jens Remus
2025-12-12  9:21   ` 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=20251208171559.2029709-16-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