2022-05-23 18:24:32

by Sathvika Vasireddy

[permalink] [raw]
Subject: [RFC PATCH 2/4] objtool: Enable objtool to run only on files with ftrace enabled

This patch makes sure objtool runs only on the object files
that have ftrace enabled, instead of running on all the object
files.

Signed-off-by: Naveen N. Rao <[email protected]>
Signed-off-by: Sathvika Vasireddy <[email protected]>
---
scripts/Makefile.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 2e0c3f9c1459..06ceffd92921 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -258,8 +258,8 @@ else
# 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file
# 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file

-$(obj)/%.o: objtool-enabled = $(if $(filter-out y%, \
- $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n),y)
+$(obj)/%.o: objtool-enabled = $(and $(if $(filter-out y%, $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n),y), \
+ $(if $(findstring $(strip $(CC_FLAGS_FTRACE)),$(_c_flags)),y),y)

endif

--
2.25.1



2022-05-24 14:43:28

by Christophe Leroy

[permalink] [raw]
Subject: Re: [RFC PATCH 2/4] objtool: Enable objtool to run only on files with ftrace enabled

Hi Sathvika

Le 24/05/2022 à 12:53, Sathvika Vasireddy a écrit :
> [Vous ne recevez pas souvent de courriers de la part de
> [email protected]. Découvrez pourquoi cela peut être important à
> l’adresse https://aka.ms/LearnAboutSenderIdentification.]
>
> Hi Christophe,
>
> On 24/05/22 14:27, Christophe Leroy wrote:
>>
>> Le 23/05/2022 à 19:55, Sathvika Vasireddy a écrit :
>>> This patch makes sure objtool runs only on the object files
>>> that have ftrace enabled, instead of running on all the object
>>> files.
>> Why do that ?
> This was done to address the issue discussed here:
> https://lore.kernel.org/all/[email protected]/

Ah ? Ok.

But how does x86 do it at the moment ? Shouldn't we use
OBJECT_FILES_NON_STANDARD instead ?


>
>
>>
>> What about static_calls ? There may be files without ftrace but with
>> static calls.
> Yes, this prevents objtool from running on those files. We can
> restrict this change to FTRACE_MCOUNT_USE_OBJTOOL
>>
>> By the way, it would be nice if we could use it only on C files.
>> I get the following errors for ASM files:
>>
>> arch/powerpc/kernel/entry_32.o: warning: objtool: .text+0x1b4:
>> unannotated intra-function call
>
> I'm looking into ways to address this.
>

Nice.

Christophe

2022-05-24 20:05:22

by Christophe Leroy

[permalink] [raw]
Subject: Re: [RFC PATCH 2/4] objtool: Enable objtool to run only on files with ftrace enabled



Le 23/05/2022 à 19:55, Sathvika Vasireddy a écrit :
> This patch makes sure objtool runs only on the object files
> that have ftrace enabled, instead of running on all the object
> files.

Why do that ?

What about static_calls ? There may be files without ftrace but with
static calls.

By the way, it would be nice if we could use it only on C files.
I get the following errors for ASM files:

arch/powerpc/kernel/entry_32.o: warning: objtool: .text+0x1b4:
unannotated intra-function call

>
> Signed-off-by: Naveen N. Rao <[email protected]>
> Signed-off-by: Sathvika Vasireddy <[email protected]>
> ---
> scripts/Makefile.build | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 2e0c3f9c1459..06ceffd92921 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -258,8 +258,8 @@ else
> # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file
> # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file
>
> -$(obj)/%.o: objtool-enabled = $(if $(filter-out y%, \
> - $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n),y)
> +$(obj)/%.o: objtool-enabled = $(and $(if $(filter-out y%, $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n),y), \
> + $(if $(findstring $(strip $(CC_FLAGS_FTRACE)),$(_c_flags)),y),y)
>
> endif
>

2022-05-26 00:52:56

by Sathvika Vasireddy

[permalink] [raw]
Subject: Re: [RFC PATCH 2/4] objtool: Enable objtool to run only on files with ftrace enabled

Hi Christophe,

On 24/05/22 14:27, Christophe Leroy wrote:
>
> Le 23/05/2022 à 19:55, Sathvika Vasireddy a écrit :
>> This patch makes sure objtool runs only on the object files
>> that have ftrace enabled, instead of running on all the object
>> files.
> Why do that ?
This was done to address the issue discussed here:
https://lore.kernel.org/all/[email protected]/

>
> What about static_calls ? There may be files without ftrace but with
> static calls.
Yes, this prevents objtool from running on those files. We can
restrict this change to FTRACE_MCOUNT_USE_OBJTOOL
>
> By the way, it would be nice if we could use it only on C files.
> I get the following errors for ASM files:
>
> arch/powerpc/kernel/entry_32.o: warning: objtool: .text+0x1b4:
> unannotated intra-function call

I'm looking into ways to address this.

- Sathvika