From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
linux-s390@vger.kernel.org,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Huacai Chen <chenhuacai@kernel.org>,
WANG Xuerui <kernel@xen0n.name>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Naveen N Rao <naveen@kernel.org>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>
Subject: [PATCH v2 0/2] ftrace: Make ftrace_regs abstract and consolidate code
Date: Tue, 08 Oct 2024 19:05:27 -0400 [thread overview]
Message-ID: <20241008230527.674939311@goodmis.org> (raw)
This is based on:
https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
ftrace/for-next
ftrace_regs was created to hold registers that store information to save
function parameters, return value and stack. Since it is a subset of
pt_regs, it should only be used by its accessor functions. But because
pt_regs can easily be taken from ftrace_regs (on most archs), it is
tempting to use it directly. But when running on other architectures, it
may fail to build or worse, build but crash the kernel!
Instead, make struct ftrace_regs an empty structure and have the
architectures define __arch_ftrace_regs and all the accessor functions
will typecast to it to get to the actual fields. This will help avoid
usage of ftrace_regs directly.
I again compiled all the affected architectures (except for 32bit ppc).
I got s390 built when disabling bcachefs.
Changes since v1: https://lore.kernel.org/all/20241007204743.41314f1d@gandalf.local.home/
- Moved the non ftrace args code from asm-generic/ftrace.h to linux/ftrace.h
those archs have their own asm/ftrace.h and are not using asm-generic.
The default has to be in linux/ftrace.h
- simplified arch_ftrace_get_regs() and made it a static inline function
- Added a second patch that consolidates a lot of the duplicate code
when an architecture has pt_regs embedded in the ftrace_regs.
Steven Rostedt (2):
ftrace: Make ftrace_regs abstract from direct use
ftrace: Consolidate ftrace_regs accessor functions for archs using pt_regs
----
arch/arm64/include/asm/ftrace.h | 21 +++++++++--------
arch/arm64/kernel/asm-offsets.c | 22 +++++++++---------
arch/arm64/kernel/ftrace.c | 10 ++++----
arch/loongarch/include/asm/ftrace.h | 29 ++++--------------------
arch/loongarch/kernel/ftrace_dyn.c | 2 +-
arch/powerpc/include/asm/ftrace.h | 27 +++-------------------
arch/powerpc/kernel/trace/ftrace.c | 4 ++--
arch/powerpc/kernel/trace/ftrace_64_pg.c | 2 +-
arch/riscv/include/asm/ftrace.h | 22 ++++++++++--------
arch/riscv/kernel/asm-offsets.c | 28 +++++++++++------------
arch/riscv/kernel/ftrace.c | 2 +-
arch/s390/include/asm/ftrace.h | 29 ++++--------------------
arch/s390/kernel/asm-offsets.c | 4 ++--
arch/s390/kernel/ftrace.c | 2 +-
arch/s390/lib/test_unwind.c | 4 ++--
arch/x86/include/asm/ftrace.h | 30 ++++++------------------
arch/x86/kernel/ftrace.c | 2 +-
include/linux/ftrace.h | 39 +++++++++++++++-----------------
include/linux/ftrace_regs.h | 36 +++++++++++++++++++++++++++++
kernel/trace/ftrace.c | 2 +-
20 files changed, 139 insertions(+), 178 deletions(-)
create mode 100644 include/linux/ftrace_regs.h
next reply other threads:[~2024-10-08 23:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-08 23:05 Steven Rostedt [this message]
2024-10-08 23:05 ` [PATCH v2 1/2] ftrace: Make ftrace_regs abstract from direct use Steven Rostedt
2024-10-09 5:18 ` Masami Hiramatsu
2024-10-09 9:36 ` Heiko Carstens
2024-10-08 23:05 ` [PATCH v2 2/2] ftrace: Consolidate ftrace_regs accessor functions for archs using pt_regs Steven Rostedt
2024-10-09 4:47 ` Masami Hiramatsu
2024-10-09 13:43 ` Steven Rostedt
2024-10-09 9:37 ` Heiko Carstens
2024-10-09 15:31 ` Steven Rostedt
2024-10-09 9:36 ` [PATCH v2 0/2] ftrace: Make ftrace_regs abstract and consolidate code Heiko Carstens
2024-12-11 22:33 ` patchwork-bot+linux-riscv
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=20241008230527.674939311@goodmis.org \
--to=rostedt@goodmis.org \
--cc=agordeev@linux.ibm.com \
--cc=aou@eecs.berkeley.edu \
--cc=borntraeger@linux.ibm.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=kernel@xen0n.name \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=maddy@linux.ibm.com \
--cc=mark.rutland@arm.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=svens@linux.ibm.com \
--cc=tglx@linutronix.de \
--cc=will@kernel.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;
as well as URLs for NNTP newsgroup(s).