Le 18/04/2022 à 08:07, Naveen N. Rao a écrit : > Christophe Leroy wrote: >> 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 <christophe.le...@csgroup.eu> >> --- >> arch/powerpc/kernel/trace/ftrace.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/kernel/trace/ftrace.c >> b/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 long >> addr, 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