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

From: Christophe Leroy
Date: Mon Jun 20 2022 - 03:42:58 EST




Le 20/06/2022 à 09:35, Peter Zijlstra a écrit :
> 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.

Yes, on 32 bits platforms it makes no difference, so lets convert all
platforms to PC32, it's always easier to have only one solution for all.

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