2015-04-13 00:57:13

by Andi Kleen

[permalink] [raw]
Subject: [PATCH] Use -mcount-record for dynamic ftrace

From: Andi Kleen <[email protected]>

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 <[email protected]>
---
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) \
--
2.3.3


2015-04-13 19:32:16

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

On Sun, 12 Apr 2015 17:54:27 -0700
Andi Kleen <[email protected]> wrote:

> From: Andi Kleen <[email protected]>
>
> 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 <[email protected]>
> ---
> 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) \

2015-04-13 21:55:11

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

> 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

2015-04-13 22:03:53

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

On Mon, 13 Apr 2015 14:55:08 -0700
Andi Kleen <[email protected]> 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

2015-04-13 22:54:18

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

> > > 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

--
[email protected] -- Speaking for myself only.

2015-04-14 00:26:16

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

On Tue, 14 Apr 2015 00:54:12 +0200
Andi Kleen <[email protected]> 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

2015-04-14 06:53:06

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

Steven Rostedt <[email protected]> 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/

--
Kalle Valo

2015-04-14 13:07:33

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] Use -mcount-record for dynamic ftrace

On Tue, 14 Apr 2015 09:19:58 +0300
Kalle Valo <[email protected]> wrote:

> Steven Rostedt <[email protected]> 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