Re: [RFC] ftrace: Add support to keep some functions out of ftrace

From: Steven Rostedt
Date: Thu Aug 18 2022 - 16:50:23 EST


On Thu, 18 Aug 2022 22:27:07 +0200
Jiri Olsa <olsajiri@xxxxxxxxx> wrote:

> ok, so the problem with __attribute__((patchable_function_entry(5))) is that
> it puts function address into __patchable_function_entries section, which is
> one of ftrace locations source:
>
> #define MCOUNT_REC() . = ALIGN(8); \
> __start_mcount_loc = .; \
> KEEP(*(__mcount_loc)) \
> KEEP(*(__patchable_function_entries)) \
> __stop_mcount_loc = .; \
> ...
>
>
> it looks like __patchable_function_entries is used for other than x86 archs,
> so we perhaps we could have x86 specific MCOUNT_REC macro just with
> __mcount_loc section?

So something like this:

#ifdef CONFIG_X86
# define NON_MCOUNT_PATCHABLE KEEP(*(__patchable_function_entries))
# define MCOUNT_PATCHABLE
#else
# define NON_MCOUNT_PATCHABLE
# define MCOUNT_PATCHABLE KEEP(*(__patchable_function_entries))
#endif

#define MCOUNT_REC() . = ALIGN(8); \
__start_mcount_loc = .; \
KEEP(*(__mcount_loc)) \
MCOUNT_PATCHABLE \
__stop_mcount_loc = .; \
NON_MCOUNT_PATCHABLE \
...

??

-- Steve