Re: [PATCH v1 06/22] powerpc/ftrace: Inline ftrace_modify_code()
From: Christophe Leroy <hidden>
Date: 2022-05-04 11:43:17
Also in:
lkml
Le 18/04/2022 à 08:07, Naveen N. Rao a écrit :
Christophe Leroy wrote:quoted
Inlining ftrace_modify_code(), it increases a bit the size of ftrace code but brings 5% improvment on ftrace activation. Signed-off-by: Christophe Leroy <redacted> --- arch/powerpc/kernel/trace/ftrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/arch/powerpc/kernel/trace/ftrace.cb/arch/powerpc/kernel/trace/ftrace.c index 41c45b9c7f39..98e82fa4980f 100644--- a/arch/powerpc/kernel/trace/ftrace.c +++ b/arch/powerpc/kernel/trace/ftrace.c@@ -53,7 +53,7 @@ ftrace_call_replace(unsigned long ip, unsigned longaddr, int link) return op; } -static int +static inline int ftrace_modify_code(unsigned long ip, ppc_inst_t old, ppc_inst_t new) { ppc_inst_t replaced;I thought gcc was free to inline functions without the need for 'inline'. Don't you see this being inlined otherwise?
Yep, gcc is free to inline, but in that case it doesn't inline unless you suggest it to do so.
On the flip side, don't we need __always_inline if we want to force inlining?
The question is, do we want to force inlining, even with CONFIG_CC_OPTIMIZE_FOR_SIZE ? With 'inline', gcc seems to now inline it with CONFIG_CC_OPTIMIZE_FOR_SPEED and still keep it out of line with CONFIG_CC_OPTIMIZE_FOR_SIZE. Christophe