Re: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCCmessing with mcount prologue

From: Thomas Gleixner
Date: Tue Nov 24 2009 - 09:57:29 EST


On Tue, 24 Nov 2009, Andrew Haley wrote:
> H.J. Lu wrote:
> > On Sun, Nov 22, 2009 at 9:20 AM, Andrew Haley <aph@xxxxxxxxxx> wrote:
> >> H.J. Lu wrote:
> >>> On Fri, Nov 20, 2009 at 11:35 AM, Andrew Haley <aph@xxxxxxxxxx> wrote:
> >>>> Steven Rostedt wrote:
> >>>>> Ingo, Thomas and Linus,
> >>>>>
> >>>>> I know Thomas did a patch to force the -mtune=generic, but just in case
> >>>>> gcc decides to do something crazy again, this patch will catch it.
> >>>>>
> >>>>> Should we try to get this in now?
> >>>> I'm sure this makes sense, but a gcc test case would be even better.
> >>>> If this can be detected in the gcc test suite it'll be found and
> >>>> fixed long before y'all in kernel land get to see it. That's the
> >>>> only way to guarantee this never bothers you again.
> >>>>
> >>>> H.J., who wrote the code in question, is hopefully looking at why
> >>>> this odd code is being generated. Once he's done I can put a
> >>>> suitable test case in the gcc test suite.
> >>>>
> >>> See:
> >>>
> >>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42109#c7
> >> I saw that, but does it mean you're going to investigate? There is
> >> no obvious reason why -mtune=generic should affect code generation
> >> in this way, but it does.
> >
> > Why not, there is
> >
> > static const unsigned int x86_accumulate_outgoing_args
> > = m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
> > | m_GENERIC;
> >
> > -mtune=generic turns on -maccumulate-outgoing-args.
>
> Alright, so let's at least try to give the kernel people the information
> that they need.
>
> What you're saying is, to avoid this:
>
> 000005f0 <timer_stats_update_stats>:
> 5f0: 57 push %edi
> 5f1: 8d 7c 24 08 lea 0x8(%esp),%edi
> 5f5: 83 e4 f0 and $0xfffffff0,%esp
> 5f8: ff 77 fc pushl -0x4(%edi)
> 5fb: 55 push %ebp
> 5fc: 89 e5 mov %esp,%ebp
>
> you should compile your code with -maccumulate-outgoing-args, and there's
> no need to use -mtune=generic. Is that right?

Seems to work. What other side effects has that ?

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/