All of lore.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: guoren@kernel.org, anup@brainfault.org,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	heiko@sntech.de, rostedt@goodmis.org, mhiramat@kernel.org,
	jolsa@redhat.com, bp@suse.de, jpoimboe@kernel.org,
	suagrfillet@gmail.com, andy.chiu@sifive.com,
	mark.rutland@arm.com, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH V4 6/7] riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support
Date: Thu, 1 Dec 2022 20:15:46 +0000	[thread overview]
Message-ID: <Y4kLcgp4Oas6P3UG@spud> (raw)
In-Reply-To: <mhng-2612202a-d3bf-4b2b-9b8b-df67b38b5315@palmer-ri-x1c9a>

On Thu, Dec 01, 2022 at 12:06:39PM -0800, Palmer Dabbelt wrote:
> On Thu, 01 Dec 2022 12:02:56 PST (-0800), Conor Dooley wrote:
> > On Mon, Nov 28, 2022 at 10:32:29PM -0500, guoren@kernel.org wrote:
> > > From: Song Shuai <suagrfillet@gmail.com>
> > > 
> > > This patch adds DYNAMIC_FTRACE_WITH_DIRECT_CALLS support for RISC-V.
> > > 
> > > select the DYNAMIC_FTRACE_WITH_DIRECT_CALLS to provide the
> > > register_ftrace_direct[_multi] interfaces allowing users to register
> > > the customed trampoline (direct_caller) as the mcount for one or
> > > more target functions. And modify_ftrace_direct[_multi] are also
> > > provided for modifying direct_caller.
> > > 
> > > To make the direct_caller and the other ftrace hooks (eg. function/fgraph
> > > tracer, k[ret]probes) co-exist, a temporary register is nominated to
> > > store the address of direct_caller in ftrace_regs_caller. After the
> > > setting of the address direct_caller by direct_ops->func and the
> > > RESTORE_REGS in ftrace_regs_caller, direct_caller will be jumped to
> > > by the `jr` inst.
> > > 
> > > 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              | 1 +
> > >  arch/riscv/include/asm/ftrace.h | 6 ++++++
> > >  arch/riscv/kernel/mcount-dyn.S  | 4 ++++
> > >  3 files changed, 11 insertions(+)
> > > 
> > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> > > index 1d0e5838b11b..2828537abfcd 100644
> > > --- a/arch/riscv/Kconfig
> > > +++ b/arch/riscv/Kconfig
> > > @@ -278,6 +278,7 @@ config ARCH_RV64I
> > >  	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
> > >  	select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU && $(cc-option,-fpatchable-function-entry=8)
> > >  	select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
> > > +	select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
> > >  	select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
> > >  	select HAVE_FUNCTION_GRAPH_TRACER
> > >  	select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !PREEMPTION
> > 
> > Please sort new entries here in alphabetical order, so move the new
> > entry up by one line :)
> 
> IIRC whomever sorted these entrties orignially posted a script that does
> that.  Maybe that should be integrated into either checkpatch or one of the
> patchwork robots so we don't have to manually remember the alphabet?

If it actually does *sorting* I am not sure it's a suitable inclusion
as-is that'd seem better as a pre-commit hook. But maybe it can be
co-opted somehow. I'll try to dig it up off of lore tomorrow.

Thanks,
Conor.


WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: guoren@kernel.org, anup@brainfault.org,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	heiko@sntech.de, rostedt@goodmis.org, mhiramat@kernel.org,
	jolsa@redhat.com, bp@suse.de, jpoimboe@kernel.org,
	suagrfillet@gmail.com, andy.chiu@sifive.com,
	mark.rutland@arm.com, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH V4 6/7] riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support
Date: Thu, 1 Dec 2022 20:15:46 +0000	[thread overview]
Message-ID: <Y4kLcgp4Oas6P3UG@spud> (raw)
In-Reply-To: <mhng-2612202a-d3bf-4b2b-9b8b-df67b38b5315@palmer-ri-x1c9a>

On Thu, Dec 01, 2022 at 12:06:39PM -0800, Palmer Dabbelt wrote:
> On Thu, 01 Dec 2022 12:02:56 PST (-0800), Conor Dooley wrote:
> > On Mon, Nov 28, 2022 at 10:32:29PM -0500, guoren@kernel.org wrote:
> > > From: Song Shuai <suagrfillet@gmail.com>
> > > 
> > > This patch adds DYNAMIC_FTRACE_WITH_DIRECT_CALLS support for RISC-V.
> > > 
> > > select the DYNAMIC_FTRACE_WITH_DIRECT_CALLS to provide the
> > > register_ftrace_direct[_multi] interfaces allowing users to register
> > > the customed trampoline (direct_caller) as the mcount for one or
> > > more target functions. And modify_ftrace_direct[_multi] are also
> > > provided for modifying direct_caller.
> > > 
> > > To make the direct_caller and the other ftrace hooks (eg. function/fgraph
> > > tracer, k[ret]probes) co-exist, a temporary register is nominated to
> > > store the address of direct_caller in ftrace_regs_caller. After the
> > > setting of the address direct_caller by direct_ops->func and the
> > > RESTORE_REGS in ftrace_regs_caller, direct_caller will be jumped to
> > > by the `jr` inst.
> > > 
> > > 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              | 1 +
> > >  arch/riscv/include/asm/ftrace.h | 6 ++++++
> > >  arch/riscv/kernel/mcount-dyn.S  | 4 ++++
> > >  3 files changed, 11 insertions(+)
> > > 
> > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> > > index 1d0e5838b11b..2828537abfcd 100644
> > > --- a/arch/riscv/Kconfig
> > > +++ b/arch/riscv/Kconfig
> > > @@ -278,6 +278,7 @@ config ARCH_RV64I
> > >  	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
> > >  	select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU && $(cc-option,-fpatchable-function-entry=8)
> > >  	select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
> > > +	select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
> > >  	select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
> > >  	select HAVE_FUNCTION_GRAPH_TRACER
> > >  	select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !PREEMPTION
> > 
> > Please sort new entries here in alphabetical order, so move the new
> > entry up by one line :)
> 
> IIRC whomever sorted these entrties orignially posted a script that does
> that.  Maybe that should be integrated into either checkpatch or one of the
> patchwork robots so we don't have to manually remember the alphabet?

If it actually does *sorting* I am not sure it's a suitable inclusion
as-is that'd seem better as a pre-commit hook. But maybe it can be
co-opted somehow. I'll try to dig it up off of lore tomorrow.

Thanks,
Conor.


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2022-12-01 20:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-29  3:32 [PATCH V4 0/7] riscv: ftrace: Fixup ftrace detour code & Optimization guoren
2022-11-29  3:32 ` guoren
2022-11-29  3:32 ` [PATCH V4 1/7] riscv: ftrace: Fixup panic by disabling preemption guoren
2022-11-29  3:32   ` guoren
2022-11-29  3:32 ` [PATCH V4 2/7] riscv: ftrace: Remove wasted nops for !RISCV_ISA_C guoren
2022-11-29  3:32   ` guoren
2022-11-29  3:32 ` [PATCH V4 3/7] riscv: ftrace: Reduce the detour code size to half guoren
2022-11-29  3:32   ` guoren
2022-11-29  3:32 ` [PATCH V4 4/7] riscv: ftrace: Add ftrace_graph_func guoren
2022-11-29  3:32   ` guoren
2022-11-29  3:32 ` [PATCH V4 5/7] riscv: ftrace: Make ftrace_caller call ftrace_graph_func guoren
2022-11-29  3:32   ` guoren
2022-11-29  3:32 ` [PATCH V4 6/7] riscv: ftrace: Add DYNAMIC_FTRACE_WITH_DIRECT_CALLS support guoren
2022-11-29  3:32   ` guoren
2022-11-29 12:03   ` Song Shuai
2022-11-29 12:03     ` Song Shuai
2022-11-30  7:29     ` Guo Ren
2022-11-30  7:29       ` Guo Ren
2022-12-01 20:02   ` Conor Dooley
2022-12-01 20:02     ` Conor Dooley
2022-12-01 20:06     ` Palmer Dabbelt
2022-12-01 20:06       ` Palmer Dabbelt
2022-12-01 20:15       ` Conor Dooley [this message]
2022-12-01 20:15         ` Conor Dooley
2022-11-29  3:32 ` [PATCH V4 7/7] samples: ftrace: Add riscv support for SAMPLE_FTRACE_DIRECT[_MULTI] guoren
2022-11-29  3:32   ` guoren

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=Y4kLcgp4Oas6P3UG@spud \
    --to=conor@kernel.org \
    --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=mark.rutland@arm.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: link
Be 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.