diff mbox

Use -mcount-record for dynamic ftrace

Message ID 1428886467-4969-1-git-send-email-andi@firstfloor.org (mailing list archive)
State New, archived
Headers show

Commit Message

Andi Kleen April 13, 2015, 12:54 a.m. UTC
From: Andi Kleen <ak@linux.intel.com>

gcc 5 supports a new -mcount-record option to generate ftrace
tables directly. This avoids the need to run record_mcount
manually.

Use this option when available.

It also has a -mcount-nop option to generate the mcount calls
as nops. So far that is not implemented, but it could be used
to optimize patching at boot up.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 scripts/Makefile.build | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Steven Rostedt April 13, 2015, 7:32 p.m. UTC | #1
On Sun, 12 Apr 2015 17:54:27 -0700
Andi Kleen <andi@firstfloor.org> wrote:

> From: Andi Kleen <ak@linux.intel.com>
> 
> gcc 5 supports a new -mcount-record option to generate ftrace
> tables directly. This avoids the need to run record_mcount
> manually.
> 
> Use this option when available.
> 
> It also has a -mcount-nop option to generate the mcount calls
> as nops. So far that is not implemented, but it could be used
> to optimize patching at boot up.

Interesting. But I can't accept this until I can test it. I don't have
the time to build gcc from scratch, and currently none of my boxes have
a gcc 5 install.

I wonder who's responsible for
https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/

If they can add a i386/x86_64 build for gcc5 I'll be happy to download
it and test this patch.

Thanks,

-- Steve


> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
>  scripts/Makefile.build | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 01df30a..f258e9b 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -210,6 +210,11 @@ cmd_modversions =								\
>  	fi;
>  endif
>  
> +# gcc 5 supports generating the mcount tables directly
> +ifneq ($(call cc-option,-mrecord-mcount,y),y)
> +KBUILD_CFLAGS += -mrecord-mcount
> +else
> +# else do it all manually
>  ifdef CONFIG_FTRACE_MCOUNT_RECORD
>  ifdef BUILD_C_RECORDMCOUNT
>  ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
> @@ -240,6 +245,7 @@ cmd_record_mcount =						\
>  		$(sub_cmd_record_mcount)			\
>  	fi;
>  endif
> +endif
>  
>  define rule_cc_o_c
>  	$(call echo-cmd,checksrc) $(cmd_checksrc)			  \

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andi Kleen April 13, 2015, 9:55 p.m. UTC | #2
> Interesting. But I can't accept this until I can test it. I don't have

AFAIK that's a unique policy. I don't think any other maintainer operates
this way.

> I wonder who's responsible for
> https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> 
> If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> it and test this patch.

That doesn't make any sense.

-Andi
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steven Rostedt April 13, 2015, 10:03 p.m. UTC | #3
On Mon, 13 Apr 2015 14:55:08 -0700
Andi Kleen <ak@linux.intel.com> wrote:

> > Interesting. But I can't accept this until I can test it. I don't have
> 
> AFAIK that's a unique policy. I don't think any other maintainer operates
> this way.

Um, really? Other maintainers don't test patches that they maintain?
This isn't like hardware that I don't have. This could certainly affect
people if it breaks, and I will be responsible to fix it. I'm not going
to do that until I have a setup where I can test things that break.


> 
> > I wonder who's responsible for
> > https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> > 
> > If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> > it and test this patch.
> 
> That doesn't make any sense.
> 

What, adding gcc5 to the crosstools suite? Why not?

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andi Kleen April 13, 2015, 10:54 p.m. UTC | #4
> > > I wonder who's responsible for
> > > https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> > > 
> > > If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> > > it and test this patch.
> > 
> > That doesn't make any sense.
> > 
> 
> What, adding gcc5 to the crosstools suite? Why not?

Making patches dependent on someone else building compilers for you.

-Andi
Steven Rostedt April 14, 2015, 12:26 a.m. UTC | #5
On Tue, 14 Apr 2015 00:54:12 +0200
Andi Kleen <andi@firstfloor.org> wrote:

> > > > I wonder who's responsible for
> > > > https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> > > > 
> > > > If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> > > > it and test this patch.
> > > 
> > > That doesn't make any sense.
> > > 
> > 
> > What, adding gcc5 to the crosstools suite? Why not?
> 
> Making patches dependent on someone else building compilers for you.
> 

Well, until it's in the distro, I don't currently have time to build
the compiler. Thus, it will have to wait till one's already available,
or I get around to it.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kalle Valo April 14, 2015, 6:19 a.m. UTC | #6
Steven Rostedt <rostedt@goodmis.org> writes:

> I wonder who's responsible for
> https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
>
> If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> it and test this patch.

Found this:

"For any questions don't hesitate to contact me at tony (at) bake your
noodle . com"

https://www.kernel.org/pub/tools/crosstool/
Steven Rostedt April 14, 2015, 1:07 p.m. UTC | #7
On Tue, 14 Apr 2015 09:19:58 +0300
Kalle Valo <kvalo@adurom.com> wrote:

> Steven Rostedt <rostedt@goodmis.org> writes:
> 
> > I wonder who's responsible for
> > https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> >
> > If they can add a i386/x86_64 build for gcc5 I'll be happy to download
> > it and test this patch.
> 
> Found this:
> 
> "For any questions don't hesitate to contact me at tony (at) bake your
> noodle . com"
> 
> https://www.kernel.org/pub/tools/crosstool/
> 

Thanks for the pointer.

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 01df30a..f258e9b 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -210,6 +210,11 @@  cmd_modversions =								\
 	fi;
 endif
 
+# gcc 5 supports generating the mcount tables directly
+ifneq ($(call cc-option,-mrecord-mcount,y),y)
+KBUILD_CFLAGS += -mrecord-mcount
+else
+# else do it all manually
 ifdef CONFIG_FTRACE_MCOUNT_RECORD
 ifdef BUILD_C_RECORDMCOUNT
 ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
@@ -240,6 +245,7 @@  cmd_record_mcount =						\
 		$(sub_cmd_record_mcount)			\
 	fi;
 endif
+endif
 
 define rule_cc_o_c
 	$(call echo-cmd,checksrc) $(cmd_checksrc)			  \