Re: objtool warnings for kernel/trace/trace_selftest_dynamic.o

From: Andi Kleen
Date: Mon Dec 17 2018 - 19:06:21 EST


On Mon, Dec 17, 2018 at 05:36:44PM -0500, Steven Rostedt wrote:
> On Mon, 17 Dec 2018 15:31:26 -0600
> Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
> > On Mon, Dec 17, 2018 at 08:29:38PM +0100, Peter Zijlstra wrote:
> > > On Mon, Dec 17, 2018 at 12:16:38PM -0600, Josh Poimboeuf wrote:
> > >
> > > > > Yes LTO causes the to be treated like static functions.
> > > > >
> > > > > I guess noclone is unlikely to be really needed here because these
> > > > > functions are unlikely to be cloned.
> > > > >
> > > > > So as a workaround it could be removed.
> > > > >
> > > > > But note we have other noclone functions in the tree (like in KVM)
> > > > > which actually need it.
> > > >
> > > > How about we just use the __used attribute then? It seems to have the
> > > > same result of preventing IPA optimizations (without the weird side
> > > > effect of missing frame pointers).
> > >
> > > AFAIK we don't have any in-tree LTO, so it can all go in the bin.
> > >
> > > When/if we get the LTO trainwreck sorted -- which very much includes
> > > getting that memory-order-consume fixed -- we can revisit all that.
> >
> > Ok, then if there are no objections I'll just send a revert of:
> >
> > dd3dad0d716d ("ftrace: Mark function tracer test functions noinline/noclone")
> >
>
> Should it be reverted, or just remove the noclone, and keep the
> noinline?

It should not be touched for now, until it is properly debugged.

IMHO Josh's explanation doesn't make much sense and there
was a lot of handwaving

And just fixing one case isn't good enough because there are other
noclone functions in the tree.

It the problem is the plugin the plugin needs to be fixed.

If the problem is gcc we need a gcc test case and bug, with
some analysis, and then based on that select the proper workaround.


-Andi