Re: [RFC][PATCH] ftrace,objtool: PC32 based __mcount_loc

From: Peter Zijlstra
Date: Mon Jun 20 2022 - 03:35:42 EST


On Fri, Jun 17, 2022 at 01:11:42PM -0700, Josh Poimboeuf wrote:
> On Fri, Jun 17, 2022 at 01:24:53PM +0200, Peter Zijlstra wrote:
> >
> > Hi,
> >
> > I recently noticed that __mcount_loc is 64bit wide, containing absolute
> > addresses. Since __mcount_loc is a permanent section (not one we drop
> > after boot), this bloats the kernel memory usage for no real purpose.
> >
> > The below patch adds __mcount_loc_32 and objtool support to generate it.
> > This saves, on an x86_64-defconfig + FTRACE, 23975*4 ~= 94K of permanent
> > storage.
> >
> > XXX hobbled sorttable for now
> > XXX compile tested only
> >
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
>
> Nice!
>
> Some nits:
>
> - No need for renaming the section, it can still be called
> '__mcount_loc' regardless?

I wanted to avoid mixing them by accidental build funnies, also, it
having a different name makes it easier to check what's what with a
simple readelf.

> - No need for a new FTRACE_MCOUNT32_USE_OBJTOOL config option or
> '--mcount32' cmdline option, just change the old ones to be pc32?

Right, so I did that because of the pending --mcount patches for Power.
If Christophe is on board with that, sure, can do.

> - change "32" to "PC32": CC_USING_MCOUNT_LOC_PC32

Right.