2021-11-16 00:06:07

by Heiko Carstens

[permalink] [raw]
Subject: [PATCH 2/2] ftrace/samples: add s390 support for ftrace direct multi sample

Signed-off-by: Heiko Carstens <[email protected]>
---
arch/s390/Kconfig | 1 +
samples/ftrace/ftrace-direct-multi.c | 30 ++++++++++++++++++++++++++++
2 files changed, 31 insertions(+)

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 8857ec3b97eb..1462b8182425 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -194,6 +194,7 @@ config S390
select HAVE_RELIABLE_STACKTRACE
select HAVE_RSEQ
select HAVE_SAMPLE_FTRACE_DIRECT
+ select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
select HAVE_SOFTIRQ_ON_OWN_STACK
select HAVE_SYSCALL_TRACEPOINTS
select HAVE_VIRT_CPU_ACCOUNTING
diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c
index b6d7806b400e..2fafc9afcbf0 100644
--- a/samples/ftrace/ftrace-direct-multi.c
+++ b/samples/ftrace/ftrace-direct-multi.c
@@ -4,6 +4,7 @@
#include <linux/mm.h> /* for handle_mm_fault() */
#include <linux/ftrace.h>
#include <linux/sched/stat.h>
+#include <asm/asm-offsets.h>

extern void my_direct_func(unsigned long ip);

@@ -14,6 +15,8 @@ void my_direct_func(unsigned long ip)

extern void my_tramp(void *);

+#ifdef CONFIG_X86_64
+
asm (
" .pushsection .text, \"ax\", @progbits\n"
" .type my_tramp, @function\n"
@@ -31,6 +34,33 @@ asm (
" .popsection\n"
);

+#endif /* CONFIG_X86_64 */
+
+#ifdef CONFIG_S390
+
+asm (
+" .pushsection .text, \"ax\", @progbits\n"
+" .type my_tramp, @function\n"
+" .globl my_tramp\n"
+" my_tramp:"
+" lgr %r1,%r15\n"
+" stmg %r0,%r5,"__stringify(__SF_GPRS)"(%r15)\n"
+" stg %r14,"__stringify(__SF_GPRS+8*8)"(%r15)\n"
+" aghi %r15,"__stringify(-STACK_FRAME_OVERHEAD)"\n"
+" stg %r1,"__stringify(__SF_BACKCHAIN)"(%r15)\n"
+" lgr %r2,%r0\n"
+" brasl %r14,my_direct_func\n"
+" aghi %r15,"__stringify(STACK_FRAME_OVERHEAD)"\n"
+" lmg %r0,%r5,"__stringify(__SF_GPRS)"(%r15)\n"
+" lg %r14,"__stringify(__SF_GPRS+8*8)"(%r15)\n"
+" lgr %r1,%r0\n"
+" br %r1\n"
+" .size my_tramp, .-my_tramp\n"
+" .popsection\n"
+);
+
+#endif /* CONFIG_S390 */
+
static struct ftrace_ops direct;

static int __init ftrace_direct_multi_init(void)
--
2.25.1



2021-11-16 22:44:35

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 2/2] ftrace/samples: add s390 support for ftrace direct multi sample

On Mon, 15 Nov 2021 20:56:14 +0100
Heiko Carstens <[email protected]> wrote:

I know this is for your tree, but you really should never have an empty
change log. I could think of many things to say here.

The only acceptable empty change log IMHO is spelling fixes.

-- Steve

> Signed-off-by: Heiko Carstens <[email protected]>
> ---
>

2021-11-17 09:13:09

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH 2/2] ftrace/samples: add s390 support for ftrace direct multi sample

On Tue, Nov 16, 2021 at 05:44:30PM -0500, Steven Rostedt wrote:
> On Mon, 15 Nov 2021 20:56:14 +0100
> Heiko Carstens <[email protected]> wrote:
>
> I know this is for your tree, but you really should never have an empty
> change log. I could think of many things to say here.
>
> The only acceptable empty change log IMHO is spelling fixes.

I don't think there is much of a disagreement here, except me being
lazy. I'll add a couple of words.