From: rostedt@goodmis.org (Steven Rostedt)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/10] ARM: ftrace: allow building without frame pointers
Date: Tue, 23 Feb 2010 08:18:33 -0500 [thread overview]
Message-ID: <1266931113.19540.5.camel@frodo> (raw)
In-Reply-To: <20100222190516.GJ5055@nowhere>
On Mon, 2010-02-22 at 20:05 +0100, Frederic Weisbecker wrote:
>
> Btw, you described that mcount is used in some gcc versions and
> __gnu_mcount_nc in newers.
> Shouldn't we have a gcc version dependency here? (not sure we can
> do this from Kconfig though).
>
Maybe we can add something to recordmcount.pl?
>
>
> > config DEBUG_USER
> > bool "Verbose user fault messages"
> > help
> > diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
> > index 8214bfe..e5e1e53 100644
> > --- a/arch/arm/kernel/armksyms.c
> > +++ b/arch/arm/kernel/armksyms.c
> > @@ -165,6 +165,8 @@ EXPORT_SYMBOL(_find_next_bit_be);
> > #endif
> >
> > #ifdef CONFIG_FUNCTION_TRACER
> > +#ifdef CONFIG_OLD_MCOUNT
> > EXPORT_SYMBOL(mcount);
> > +#endif
> > EXPORT_SYMBOL(__gnu_mcount_nc);
> > #endif
> > diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
> > index d412d7c..c98e3a3 100644
> > --- a/arch/arm/kernel/entry-common.S
> > +++ b/arch/arm/kernel/entry-common.S
> > @@ -169,6 +169,12 @@ gnu_trace:
> > ldmia sp!, {r0-r3, ip, lr}
> > mov pc, ip
> >
> > +#ifdef CONFIG_OLD_MCOUNT
> > +/*
> > + * This is under an ifdef in order to force link-time errors for people trying
> > + * to build with !FRAME_POINTER with a GCC which doesn't use the new-style
> > + * mcount.
> > + */
> > ENTRY(mcount)
> > stmdb sp!, {r0-r3, lr}
> > ldr r0, =ftrace_trace_function
> > @@ -187,6 +193,7 @@ trace:
> > mov pc, r2
> > ldr lr, [fp, #-4] @ restore lr
> > ldmia sp!, {r0-r3, pc}
> > +#endif
> >
> > #endif /* CONFIG_DYNAMIC_FTRACE */
> >
> > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > index 6c22d8a..7468ffe 100644
> > --- a/kernel/trace/Kconfig
> > +++ b/kernel/trace/Kconfig
> > @@ -126,7 +126,7 @@ if FTRACE
> > config FUNCTION_TRACER
> > bool "Kernel Function Tracer"
> > depends on HAVE_FUNCTION_TRACER
> > - select FRAME_POINTER
> > + select FRAME_POINTER if (!ARM_UNWIND)
>
>
> So, if I understand well. If people have ARM_UNWIND but
> FUNCTION_TRACER, it might crash at link time in case
> they don't have a recent enough gcc version to
> support the new -pg style?
>
> That doesn't look good.
>
> Ideally, we need HAVE_FUNCTION_TRACER to be enabled in arm
> only if (old gcc && frame pointers) || new gcc
>
> And then, we need config OLD_MCOUNT:
> old gcc && FUNCTION_TRACER
>
> and config NEW_MCOUNT:
> new gcc && FUNCTION_TRACER
>
> so that we can selectively build mcount or __gnu_mcount_nc.
>
> Hmm, I fear we can't check gcc version from Kconfig, as I'm
> grepping on Kconfig files...
I would not check gcc version through KCONFIG, but you can have the gcc
version checked and define another macro in a header somewhere, like
asm/ftrace.h. Then we could do something different while it is
compiling.
Disclaimer:
I have to go back and read the entire thread, to know what exactly is
going on ;-)
-- Steve
WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: "Rabin Vincent" <rabin@rab.in>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
"Ingo Molnar" <mingo@redhat.com>,
"Abhishek Sagar" <sagar.abhishek@gmail.com>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Subject: Re: [PATCH 04/10] ARM: ftrace: allow building without frame pointers
Date: Tue, 23 Feb 2010 08:18:33 -0500 [thread overview]
Message-ID: <1266931113.19540.5.camel@frodo> (raw)
In-Reply-To: <20100222190516.GJ5055@nowhere>
On Mon, 2010-02-22 at 20:05 +0100, Frederic Weisbecker wrote:
>
> Btw, you described that mcount is used in some gcc versions and
> __gnu_mcount_nc in newers.
> Shouldn't we have a gcc version dependency here? (not sure we can
> do this from Kconfig though).
>
Maybe we can add something to recordmcount.pl?
>
>
> > config DEBUG_USER
> > bool "Verbose user fault messages"
> > help
> > diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
> > index 8214bfe..e5e1e53 100644
> > --- a/arch/arm/kernel/armksyms.c
> > +++ b/arch/arm/kernel/armksyms.c
> > @@ -165,6 +165,8 @@ EXPORT_SYMBOL(_find_next_bit_be);
> > #endif
> >
> > #ifdef CONFIG_FUNCTION_TRACER
> > +#ifdef CONFIG_OLD_MCOUNT
> > EXPORT_SYMBOL(mcount);
> > +#endif
> > EXPORT_SYMBOL(__gnu_mcount_nc);
> > #endif
> > diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
> > index d412d7c..c98e3a3 100644
> > --- a/arch/arm/kernel/entry-common.S
> > +++ b/arch/arm/kernel/entry-common.S
> > @@ -169,6 +169,12 @@ gnu_trace:
> > ldmia sp!, {r0-r3, ip, lr}
> > mov pc, ip
> >
> > +#ifdef CONFIG_OLD_MCOUNT
> > +/*
> > + * This is under an ifdef in order to force link-time errors for people trying
> > + * to build with !FRAME_POINTER with a GCC which doesn't use the new-style
> > + * mcount.
> > + */
> > ENTRY(mcount)
> > stmdb sp!, {r0-r3, lr}
> > ldr r0, =ftrace_trace_function
> > @@ -187,6 +193,7 @@ trace:
> > mov pc, r2
> > ldr lr, [fp, #-4] @ restore lr
> > ldmia sp!, {r0-r3, pc}
> > +#endif
> >
> > #endif /* CONFIG_DYNAMIC_FTRACE */
> >
> > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > index 6c22d8a..7468ffe 100644
> > --- a/kernel/trace/Kconfig
> > +++ b/kernel/trace/Kconfig
> > @@ -126,7 +126,7 @@ if FTRACE
> > config FUNCTION_TRACER
> > bool "Kernel Function Tracer"
> > depends on HAVE_FUNCTION_TRACER
> > - select FRAME_POINTER
> > + select FRAME_POINTER if (!ARM_UNWIND)
>
>
> So, if I understand well. If people have ARM_UNWIND but
> FUNCTION_TRACER, it might crash at link time in case
> they don't have a recent enough gcc version to
> support the new -pg style?
>
> That doesn't look good.
>
> Ideally, we need HAVE_FUNCTION_TRACER to be enabled in arm
> only if (old gcc && frame pointers) || new gcc
>
> And then, we need config OLD_MCOUNT:
> old gcc && FUNCTION_TRACER
>
> and config NEW_MCOUNT:
> new gcc && FUNCTION_TRACER
>
> so that we can selectively build mcount or __gnu_mcount_nc.
>
> Hmm, I fear we can't check gcc version from Kconfig, as I'm
> grepping on Kconfig files...
I would not check gcc version through KCONFIG, but you can have the gcc
version checked and define another macro in a header somewhere, like
asm/ftrace.h. Then we could do something different while it is
compiling.
Disclaimer:
I have to go back and read the entire thread, to know what exactly is
going on ;-)
-- Steve
next prev parent reply other threads:[~2010-02-23 13:18 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-13 19:48 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 01/10] ARM: ftrace: clean up mcount assembly indentation Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-13 20:18 ` Uwe Kleine-König
2010-02-13 20:18 ` Uwe Kleine-König
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-13 19:48 ` [PATCH 02/10] ARM: ftrace: document mcount formats Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-13 20:37 ` Uwe Kleine-König
2010-02-13 20:37 ` Uwe Kleine-König
2010-02-22 18:06 ` Rabin Vincent
2010-02-22 18:06 ` Rabin Vincent
2010-02-22 19:20 ` Uwe Kleine-König
2010-02-22 19:20 ` Uwe Kleine-König
2010-02-23 19:42 ` Rabin Vincent
2010-02-23 19:42 ` Rabin Vincent
2010-02-23 20:27 ` Uwe Kleine-König
2010-02-23 20:27 ` Uwe Kleine-König
2010-02-22 18:41 ` Frederic Weisbecker
2010-02-22 18:41 ` Frederic Weisbecker
2010-02-13 19:48 ` [PATCH 03/10] ftrace: allow building without frame pointers Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-22 18:36 ` Frederic Weisbecker
2010-02-23 13:44 ` Steven Rostedt
2010-02-23 13:44 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 04/10] ARM: " Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-22 19:05 ` Frederic Weisbecker
2010-02-22 19:05 ` Frederic Weisbecker
2010-02-23 13:18 ` Steven Rostedt [this message]
2010-02-23 13:18 ` Steven Rostedt
2010-02-23 17:11 ` Frederic Weisbecker
2010-02-23 17:11 ` Frederic Weisbecker
2010-02-23 17:58 ` Rabin Vincent
2010-02-23 17:58 ` Rabin Vincent
2010-02-23 18:03 ` Steven Rostedt
2010-02-23 18:03 ` Steven Rostedt
2010-02-23 18:41 ` Rabin Vincent
2010-02-23 18:41 ` Rabin Vincent
2010-02-23 13:47 ` Steven Rostedt
2010-02-23 13:47 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 05/10] ARM: ftrace: add ENDPROC annotations Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-13 22:54 ` Catalin Marinas
2010-02-13 22:54 ` Catalin Marinas
2010-02-13 19:48 ` [PATCH 06/10] ARM: ftrace: add Thumb-2 support Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-13 23:27 ` Catalin Marinas
2010-02-13 23:27 ` Catalin Marinas
2010-02-14 16:38 ` Rabin Vincent
2010-02-14 16:38 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 07/10] ftrace: pass KBUILD_CFLAGS to record_mcount.pl Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-23 13:30 ` Steven Rostedt
2010-02-23 13:30 ` Steven Rostedt
2010-02-23 18:23 ` Rabin Vincent
2010-02-23 18:23 ` Rabin Vincent
2010-02-23 18:37 ` Steven Rostedt
2010-02-23 18:37 ` Steven Rostedt
2010-02-13 19:48 ` [PATCH 08/10] ARM: ftrace: fix and update dynamic ftrace Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-14 11:08 ` Uwe Kleine-König
2010-02-14 11:08 ` Uwe Kleine-König
2010-02-14 15:53 ` Rabin Vincent
2010-02-14 15:53 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 09/10] ARM: ftrace: add Thumb-2 support to " Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-23 13:35 ` Steven Rostedt
2010-02-23 13:35 ` Steven Rostedt
2010-02-23 17:10 ` Rabin Vincent
2010-02-23 17:10 ` Rabin Vincent
2010-02-13 19:48 ` [PATCH 10/10] ARM: ftrace: enable " Rabin Vincent
2010-02-13 19:48 ` Rabin Vincent
2010-02-22 18:16 ` [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and " Rabin Vincent
2010-02-22 18:16 ` Rabin Vincent
-- strict thread matches above, loose matches on Subject: below --
2010-03-13 6:49 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace (v2) Rabin Vincent
2010-03-13 6:49 ` [PATCH 04/10] ARM: ftrace: allow building without frame pointers Rabin Vincent
2010-03-13 6:49 ` Rabin Vincent
2010-03-13 17:38 ` Steven Rostedt
2010-03-13 17:38 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-17 16:16 ` Catalin Marinas
2010-03-17 16:16 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1266931113.19540.5.camel@frodo \
--to=rostedt@goodmis.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.