From: Evgenii Shatokhin <e.shatokhin@yadro.com> To: <guoren@kernel.org>, <suagrfillet@gmail.com> Cc: <linux-riscv@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <anup@brainfault.org>, <paul.walmsley@sifive.com>, <palmer@dabbelt.com>, <conor.dooley@microchip.com>, <heiko@sntech.de>, <rostedt@goodmis.org>, <mhiramat@kernel.org>, <jolsa@redhat.com>, <bp@suse.de>, <jpoimboe@kernel.org>, <andy.chiu@sifive.com>, <linux@yadro.com> Subject: Re: [PATCH -next V7 6/7] samples: ftrace: Add riscv support for SAMPLE_FTRACE_DIRECT[_MULTI] Date: Mon, 16 Jan 2023 17:30:13 +0300 [thread overview] Message-ID: <a83dc6de-8fda-439d-b2dd-d05786e642eb@yadro.com> (raw) In-Reply-To: <20230112090603.1295340-7-guoren@kernel.org> Hi, On 12.01.2023 12:06, guoren@kernel.org wrote: > From: Song Shuai <suagrfillet@gmail.com> > > select HAVE_SAMPLE_FTRACE_DIRECT and HAVE_SAMPLE_FTRACE_DIRECT_MULTI > for ARCH_RV64I in arch/riscv/Kconfig. And add riscv asm code for > the ftrace-direct*.c files in samples/ftrace/. > > Signed-off-by: Song Shuai <suagrfillet@gmail.com> > Tested-by: Guo Ren <guoren@kernel.org> > Signed-off-by: Guo Ren <guoren@kernel.org> > --- > arch/riscv/Kconfig | 2 ++ > samples/ftrace/ftrace-direct-modify.c | 33 ++++++++++++++++++ > samples/ftrace/ftrace-direct-multi-modify.c | 37 +++++++++++++++++++++ > samples/ftrace/ftrace-direct-multi.c | 22 ++++++++++++ > samples/ftrace/ftrace-direct-too.c | 26 +++++++++++++++ > samples/ftrace/ftrace-direct.c | 22 ++++++++++++ > 6 files changed, 142 insertions(+) The samples were built OK now, but ftrace-direct-multi and ftrace-direct-multi-modify report incorrect values of ip/pc it seems. I ran 'insmod ftrace-direct-multi.ko', waited a little and then checked the messages in the trace: # TASK-PID CPU# ||||| TIMESTAMP FUNCTION # | | | ||||| | | migration/1-19 [001] ..... 3858.532131: my_direct_func1: my direct func1 ip 0 migration/0-15 [000] d.s2. 3858.532136: my_direct_func1: my direct func1 ip ff60000001ba9600 migration/0-15 [000] d..2. 3858.532204: my_direct_func1: my direct func1 ip ff60000003334d00 migration/0-15 [000] ..... 3858.532232: my_direct_func1: my direct func1 ip 0 rcu_sched-14 [001] ..... 3858.532257: my_direct_func1: my direct func1 ip 0 insmod-415 [000] ..... 3858.532270: my_direct_func1: my direct func1 ip 7fffffffffffffff <idle>-0 [001] ..s1. 3858.539051: my_direct_func1: my direct func1 ip ff60000001ba9600 <idle>-0 [001] dns2. 3858.539124: my_direct_func1: my direct func1 ip ff60000001ba9600 rcu_sched-14 [001] ..... 3858.539208: my_direct_func1: my direct func1 ip 0 [...] If I understand it right, my_direct_func1() should print the address of some location in the code, probably - at the beginning of the traced functions. The printed values (0x0, 0x7fffffffffffffff, ...) are not valid code addresses. The same issue is with ftrace-direct-multi-modify.ko. Is anything missing here? > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 307a9f413edd..e944af44f681 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -112,6 +112,8 @@ config RISCV > select HAVE_POSIX_CPU_TIMERS_TASK_WORK > select HAVE_REGS_AND_STACK_ACCESS_API > select HAVE_FUNCTION_ARG_ACCESS_API > + select HAVE_SAMPLE_FTRACE_DIRECT > + select HAVE_SAMPLE_FTRACE_DIRECT_MULTI > select HAVE_STACKPROTECTOR > select HAVE_SYSCALL_TRACEPOINTS > select HAVE_RSEQ > diff --git a/samples/ftrace/ftrace-direct-modify.c b/samples/ftrace/ftrace-direct-modify.c > index de5a0f67f320..be7bf472c3c7 100644 > --- a/samples/ftrace/ftrace-direct-modify.c > +++ b/samples/ftrace/ftrace-direct-modify.c > @@ -23,6 +23,39 @@ extern void my_tramp2(void *); > > static unsigned long my_ip = (unsigned long)schedule; > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp1, @function\n" > +" .globl my_tramp1\n" > +" my_tramp1:\n" > +" addi sp,sp,-16\n" > +" sd t0,0(sp)\n" > +" sd ra,8(sp)\n" > +" call my_direct_func1\n" > +" ld t0,0(sp)\n" > +" ld ra,8(sp)\n" > +" addi sp,sp,16\n" > +" jr t0\n" > +" .size my_tramp1, .-my_tramp1\n" > + > +" .type my_tramp2, @function\n" > +" .globl my_tramp2\n" > +" my_tramp2:\n" > +" addi sp,sp,-16\n" > +" sd t0,0(sp)\n" > +" sd ra,8(sp)\n" > +" call my_direct_func2\n" > +" ld t0,0(sp)\n" > +" ld ra,8(sp)\n" > +" addi sp,sp,16\n" > +" jr t0\n" > +" .size my_tramp2, .-my_tramp2\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-multi-modify.c b/samples/ftrace/ftrace-direct-multi-modify.c > index d52370cad0b6..10884bf418f7 100644 > --- a/samples/ftrace/ftrace-direct-multi-modify.c > +++ b/samples/ftrace/ftrace-direct-multi-modify.c > @@ -21,6 +21,43 @@ void my_direct_func2(unsigned long ip) > extern void my_tramp1(void *); > extern void my_tramp2(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp1, @function\n" > +" .globl my_tramp1\n" > +" my_tramp1:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func1\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp1, .-my_tramp1\n" > + > +" .type my_tramp2, @function\n" > +" .globl my_tramp2\n" > +" my_tramp2:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func2\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp2, .-my_tramp2\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c > index ec1088922517..a35bf43bf6d7 100644 > --- a/samples/ftrace/ftrace-direct-multi.c > +++ b/samples/ftrace/ftrace-direct-multi.c > @@ -16,6 +16,28 @@ void my_direct_func(unsigned long ip) > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-too.c b/samples/ftrace/ftrace-direct-too.c > index e13fb59a2b47..3b62e33c2e6d 100644 > --- a/samples/ftrace/ftrace-direct-too.c > +++ b/samples/ftrace/ftrace-direct-too.c > @@ -18,6 +18,32 @@ void my_direct_func(struct vm_area_struct *vma, > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-40\n" > +" sd a0,0(sp)\n" > +" sd a1,8(sp)\n" > +" sd a2,16(sp)\n" > +" sd t0,24(sp)\n" > +" sd ra,32(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld a1,8(sp)\n" > +" ld a2,16(sp)\n" > +" ld t0,24(sp)\n" > +" ld ra,32(sp)\n" > +" addi sp,sp,40\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct.c b/samples/ftrace/ftrace-direct.c > index 1f769d0db20f..2cfe5a7d2d70 100644 > --- a/samples/ftrace/ftrace-direct.c > +++ b/samples/ftrace/ftrace-direct.c > @@ -15,6 +15,28 @@ void my_direct_func(struct task_struct *p) > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > -- > 2.36.1 > > Regards, Evgenii _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Evgenii Shatokhin <e.shatokhin@yadro.com> To: <guoren@kernel.org>, <suagrfillet@gmail.com> Cc: <linux-riscv@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <anup@brainfault.org>, <paul.walmsley@sifive.com>, <palmer@dabbelt.com>, <conor.dooley@microchip.com>, <heiko@sntech.de>, <rostedt@goodmis.org>, <mhiramat@kernel.org>, <jolsa@redhat.com>, <bp@suse.de>, <jpoimboe@kernel.org>, <andy.chiu@sifive.com>, <linux@yadro.com> Subject: Re: [PATCH -next V7 6/7] samples: ftrace: Add riscv support for SAMPLE_FTRACE_DIRECT[_MULTI] Date: Mon, 16 Jan 2023 17:30:13 +0300 [thread overview] Message-ID: <a83dc6de-8fda-439d-b2dd-d05786e642eb@yadro.com> (raw) In-Reply-To: <20230112090603.1295340-7-guoren@kernel.org> Hi, On 12.01.2023 12:06, guoren@kernel.org wrote: > From: Song Shuai <suagrfillet@gmail.com> > > select HAVE_SAMPLE_FTRACE_DIRECT and HAVE_SAMPLE_FTRACE_DIRECT_MULTI > for ARCH_RV64I in arch/riscv/Kconfig. And add riscv asm code for > the ftrace-direct*.c files in samples/ftrace/. > > Signed-off-by: Song Shuai <suagrfillet@gmail.com> > Tested-by: Guo Ren <guoren@kernel.org> > Signed-off-by: Guo Ren <guoren@kernel.org> > --- > arch/riscv/Kconfig | 2 ++ > samples/ftrace/ftrace-direct-modify.c | 33 ++++++++++++++++++ > samples/ftrace/ftrace-direct-multi-modify.c | 37 +++++++++++++++++++++ > samples/ftrace/ftrace-direct-multi.c | 22 ++++++++++++ > samples/ftrace/ftrace-direct-too.c | 26 +++++++++++++++ > samples/ftrace/ftrace-direct.c | 22 ++++++++++++ > 6 files changed, 142 insertions(+) The samples were built OK now, but ftrace-direct-multi and ftrace-direct-multi-modify report incorrect values of ip/pc it seems. I ran 'insmod ftrace-direct-multi.ko', waited a little and then checked the messages in the trace: # TASK-PID CPU# ||||| TIMESTAMP FUNCTION # | | | ||||| | | migration/1-19 [001] ..... 3858.532131: my_direct_func1: my direct func1 ip 0 migration/0-15 [000] d.s2. 3858.532136: my_direct_func1: my direct func1 ip ff60000001ba9600 migration/0-15 [000] d..2. 3858.532204: my_direct_func1: my direct func1 ip ff60000003334d00 migration/0-15 [000] ..... 3858.532232: my_direct_func1: my direct func1 ip 0 rcu_sched-14 [001] ..... 3858.532257: my_direct_func1: my direct func1 ip 0 insmod-415 [000] ..... 3858.532270: my_direct_func1: my direct func1 ip 7fffffffffffffff <idle>-0 [001] ..s1. 3858.539051: my_direct_func1: my direct func1 ip ff60000001ba9600 <idle>-0 [001] dns2. 3858.539124: my_direct_func1: my direct func1 ip ff60000001ba9600 rcu_sched-14 [001] ..... 3858.539208: my_direct_func1: my direct func1 ip 0 [...] If I understand it right, my_direct_func1() should print the address of some location in the code, probably - at the beginning of the traced functions. The printed values (0x0, 0x7fffffffffffffff, ...) are not valid code addresses. The same issue is with ftrace-direct-multi-modify.ko. Is anything missing here? > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 307a9f413edd..e944af44f681 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -112,6 +112,8 @@ config RISCV > select HAVE_POSIX_CPU_TIMERS_TASK_WORK > select HAVE_REGS_AND_STACK_ACCESS_API > select HAVE_FUNCTION_ARG_ACCESS_API > + select HAVE_SAMPLE_FTRACE_DIRECT > + select HAVE_SAMPLE_FTRACE_DIRECT_MULTI > select HAVE_STACKPROTECTOR > select HAVE_SYSCALL_TRACEPOINTS > select HAVE_RSEQ > diff --git a/samples/ftrace/ftrace-direct-modify.c b/samples/ftrace/ftrace-direct-modify.c > index de5a0f67f320..be7bf472c3c7 100644 > --- a/samples/ftrace/ftrace-direct-modify.c > +++ b/samples/ftrace/ftrace-direct-modify.c > @@ -23,6 +23,39 @@ extern void my_tramp2(void *); > > static unsigned long my_ip = (unsigned long)schedule; > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp1, @function\n" > +" .globl my_tramp1\n" > +" my_tramp1:\n" > +" addi sp,sp,-16\n" > +" sd t0,0(sp)\n" > +" sd ra,8(sp)\n" > +" call my_direct_func1\n" > +" ld t0,0(sp)\n" > +" ld ra,8(sp)\n" > +" addi sp,sp,16\n" > +" jr t0\n" > +" .size my_tramp1, .-my_tramp1\n" > + > +" .type my_tramp2, @function\n" > +" .globl my_tramp2\n" > +" my_tramp2:\n" > +" addi sp,sp,-16\n" > +" sd t0,0(sp)\n" > +" sd ra,8(sp)\n" > +" call my_direct_func2\n" > +" ld t0,0(sp)\n" > +" ld ra,8(sp)\n" > +" addi sp,sp,16\n" > +" jr t0\n" > +" .size my_tramp2, .-my_tramp2\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-multi-modify.c b/samples/ftrace/ftrace-direct-multi-modify.c > index d52370cad0b6..10884bf418f7 100644 > --- a/samples/ftrace/ftrace-direct-multi-modify.c > +++ b/samples/ftrace/ftrace-direct-multi-modify.c > @@ -21,6 +21,43 @@ void my_direct_func2(unsigned long ip) > extern void my_tramp1(void *); > extern void my_tramp2(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp1, @function\n" > +" .globl my_tramp1\n" > +" my_tramp1:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func1\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp1, .-my_tramp1\n" > + > +" .type my_tramp2, @function\n" > +" .globl my_tramp2\n" > +" my_tramp2:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func2\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp2, .-my_tramp2\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-multi.c b/samples/ftrace/ftrace-direct-multi.c > index ec1088922517..a35bf43bf6d7 100644 > --- a/samples/ftrace/ftrace-direct-multi.c > +++ b/samples/ftrace/ftrace-direct-multi.c > @@ -16,6 +16,28 @@ void my_direct_func(unsigned long ip) > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct-too.c b/samples/ftrace/ftrace-direct-too.c > index e13fb59a2b47..3b62e33c2e6d 100644 > --- a/samples/ftrace/ftrace-direct-too.c > +++ b/samples/ftrace/ftrace-direct-too.c > @@ -18,6 +18,32 @@ void my_direct_func(struct vm_area_struct *vma, > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-40\n" > +" sd a0,0(sp)\n" > +" sd a1,8(sp)\n" > +" sd a2,16(sp)\n" > +" sd t0,24(sp)\n" > +" sd ra,32(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld a1,8(sp)\n" > +" ld a2,16(sp)\n" > +" ld t0,24(sp)\n" > +" ld ra,32(sp)\n" > +" addi sp,sp,40\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > diff --git a/samples/ftrace/ftrace-direct.c b/samples/ftrace/ftrace-direct.c > index 1f769d0db20f..2cfe5a7d2d70 100644 > --- a/samples/ftrace/ftrace-direct.c > +++ b/samples/ftrace/ftrace-direct.c > @@ -15,6 +15,28 @@ void my_direct_func(struct task_struct *p) > > extern void my_tramp(void *); > > +#ifdef CONFIG_RISCV > + > +asm (" .pushsection .text, \"ax\", @progbits\n" > +" .type my_tramp, @function\n" > +" .globl my_tramp\n" > +" my_tramp:\n" > +" addi sp,sp,-24\n" > +" sd a0,0(sp)\n" > +" sd t0,8(sp)\n" > +" sd ra,16(sp)\n" > +" call my_direct_func\n" > +" ld a0,0(sp)\n" > +" ld t0,8(sp)\n" > +" ld ra,16(sp)\n" > +" addi sp,sp,24\n" > +" jr t0\n" > +" .size my_tramp, .-my_tramp\n" > +" .popsection\n" > +); > + > +#endif /* CONFIG_RISCV */ > + > #ifdef CONFIG_X86_64 > > #include <asm/ibt.h> > -- > 2.36.1 > > Regards, Evgenii
next prev parent reply other threads:[~2023-01-16 14:30 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-12 9:05 [PATCH -next V7 0/7] riscv: Optimize function trace guoren 2023-01-12 9:05 ` guoren 2023-01-12 9:05 ` [PATCH -next V7 1/7] riscv: ftrace: Fixup panic by disabling preemption guoren 2023-01-12 9:05 ` guoren 2023-01-12 12:16 ` Mark Rutland 2023-01-12 12:16 ` Mark Rutland 2023-01-12 12:57 ` Mark Rutland 2023-01-12 12:57 ` Mark Rutland 2023-01-28 9:45 ` Guo Ren 2023-01-28 9:45 ` Guo Ren 2023-01-28 9:37 ` Guo Ren 2023-01-28 9:37 ` Guo Ren 2023-01-30 10:54 ` Mark Rutland 2023-01-30 10:54 ` Mark Rutland 2023-02-04 1:19 ` Guo Ren 2023-02-04 1:19 ` Guo Ren 2023-01-12 9:05 ` [PATCH -next V7 2/7] riscv: ftrace: Remove wasted nops for !RISCV_ISA_C guoren 2023-01-12 9:05 ` guoren 2023-01-12 9:05 ` [PATCH -next V7 3/7] riscv: ftrace: Reduce the detour code size to half guoren 2023-01-12 9:05 ` guoren 2023-01-16 14:11 ` Evgenii Shatokhin 2023-01-16 14:11 ` Evgenii Shatokhin 2023-01-12 9:06 ` [PATCH -next V7 4/7] riscv: ftrace: Add ftrace_graph_func guoren 2023-01-12 9:06 ` guoren 2023-01-12 9:06 ` [PATCH -next V7 5/7] riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support guoren 2023-01-12 9:06 ` guoren 2023-01-12 9:06 ` [PATCH -next V7 6/7] samples: ftrace: Add riscv support for SAMPLE_FTRACE_DIRECT[_MULTI] guoren 2023-01-12 9:06 ` guoren 2023-01-16 14:30 ` Evgenii Shatokhin [this message] 2023-01-16 14:30 ` Evgenii Shatokhin 2023-01-17 9:32 ` Song Shuai 2023-01-17 9:32 ` Song Shuai 2023-01-17 13:16 ` Evgenii Shatokhin 2023-01-17 13:16 ` Evgenii Shatokhin 2023-01-17 16:22 ` Evgenii Shatokhin 2023-01-17 16:22 ` Evgenii Shatokhin 2023-01-18 2:37 ` Song Shuai 2023-01-18 2:37 ` Song Shuai 2023-01-18 15:19 ` Evgenii Shatokhin 2023-01-18 15:19 ` Evgenii Shatokhin 2023-01-19 6:05 ` Guo Ren 2023-01-19 6:05 ` Guo Ren 2023-02-18 21:30 ` Palmer Dabbelt 2023-02-18 21:30 ` Palmer Dabbelt 2023-02-20 2:46 ` Song Shuai 2023-02-20 2:46 ` Song Shuai 2023-02-21 3:56 ` Guo Ren 2023-02-21 3:56 ` Guo Ren 2023-02-21 4:02 ` Guo Ren 2023-02-21 4:02 ` Guo Ren 2023-01-12 9:06 ` [PATCH -next V7 7/7] riscv : select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY guoren 2023-01-12 9:06 ` guoren 2023-01-16 15:02 ` [PATCH -next V7 0/7] riscv: Optimize function trace Evgenii Shatokhin 2023-01-16 15:02 ` Evgenii Shatokhin 2023-02-04 6:40 ` Guo Ren 2023-02-04 6:40 ` Guo Ren 2023-02-06 9:56 ` Mark Rutland 2023-02-06 9:56 ` Mark Rutland 2023-02-07 3:57 ` Guo Ren 2023-02-07 3:57 ` Guo Ren 2023-02-07 9:16 ` Mark Rutland 2023-02-07 9:16 ` Mark Rutland 2023-02-08 2:30 ` Guo Ren 2023-02-08 2:30 ` Guo Ren 2023-02-08 14:46 ` Mark Rutland 2023-02-08 14:46 ` Mark Rutland 2023-02-09 1:31 ` Guo Ren 2023-02-09 1:31 ` Guo Ren 2023-02-09 22:46 ` David Laight 2023-02-09 22:46 ` David Laight 2023-02-10 2:18 ` Guo Ren 2023-02-10 2:18 ` Guo Ren 2023-02-08 22:29 ` David Laight 2023-02-08 22:29 ` David Laight 2023-02-09 1:51 ` Guo Ren 2023-02-09 1:51 ` Guo Ren 2023-02-09 1:59 ` Guo Ren 2023-02-09 1:59 ` Guo Ren 2023-02-09 9:54 ` Mark Rutland 2023-02-09 9:54 ` Mark Rutland 2023-02-10 2:21 ` Guo Ren 2023-02-10 2:21 ` Guo Ren 2023-02-09 9:00 ` David Laight 2023-02-09 9:00 ` David Laight 2023-02-09 9:11 ` Guo Ren 2023-02-09 9:11 ` Guo Ren 2023-02-18 21:42 ` patchwork-bot+linux-riscv 2023-02-18 21:42 ` 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=a83dc6de-8fda-439d-b2dd-d05786e642eb@yadro.com \ --to=e.shatokhin@yadro.com \ --cc=andy.chiu@sifive.com \ --cc=anup@brainfault.org \ --cc=bp@suse.de \ --cc=conor.dooley@microchip.com \ --cc=guoren@kernel.org \ --cc=heiko@sntech.de \ --cc=jolsa@redhat.com \ --cc=jpoimboe@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=linux@yadro.com \ --cc=mhiramat@kernel.org \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=rostedt@goodmis.org \ --cc=suagrfillet@gmail.com \ /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: linkBe 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.