All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@linux.intel.com>
To: Martin Jambor <mjambor@suse.cz>
Cc: Miroslav Benes <mbenes@suse.cz>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>
Subject: Re: objtool warnings for kernel/trace/trace_selftest_dynamic.o
Date: Tue, 18 Dec 2018 13:15:01 -0800	[thread overview]
Message-ID: <20181218211501.GD25620@tassilo.jf.intel.com> (raw)
In-Reply-To: <ri6h8fbqbdf.fsf@suse.cz>

> OK, I have read through it and with the caveats that I don't quite
> understand what the failure is, that also believe attribute noclone
> should not affect frame pointer generation, and that I don't quite get
> how LTO comes into play, my comments are the following:



> 
> I am the developer who introduced attribute noclone to GCC and also the
> one who advises against using it :-) ...at least without also using the
> noinline attribute, the combination means "

The function in question uses noinline too.

> I want only one or zero
> copies of this function in the compiled assembly" which you might need
> if you do fancy stuff in inline assembly, for example.

For this case we only want one non inlined copy because it is used as a
test case for a function tracer.

LTO comes into play because it originally relied on being in a separate
file, so it would not be inlined, but with LTO that doesn't work.

> 
> I believe that when people use noclone on its own, in 99 out 100 cases
> they actually want something else.  Usually there is something that

AFAIK there is no noclone without noinline in the kernel tree.


> references the function from code (such as assembly) or a tool that the
> compiler does know about and then they should use the "used" attribute.

Neither in the ftrace case, nor in the KVM case (another user which
has fancy inline assembly that cannot be duplicated) that's the case.
It's just about having exactly one out of line instance.

So based on that I think noclone is fine. Of course there 
is still the open question why exactly the frame pointer disappears.

-Andi

  parent reply	other threads:[~2018-12-18 21:15 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-16 18:33 objtool warnings for kernel/trace/trace_selftest_dynamic.o Arnd Bergmann
2018-12-17 17:39 ` Josh Poimboeuf
2018-12-17 18:04   ` Andi Kleen
2018-12-17 18:16     ` Josh Poimboeuf
2018-12-17 19:29       ` Peter Zijlstra
2018-12-17 20:55         ` Andi Kleen
2018-12-17 22:35           ` Peter Zijlstra
2018-12-17 23:59             ` Andi Kleen
2018-12-18  9:19               ` Peter Zijlstra
2018-12-18 21:22                 ` Andi Kleen
2018-12-17 21:31         ` Josh Poimboeuf
2018-12-17 22:36           ` Steven Rostedt
2018-12-18  0:06             ` Andi Kleen
2018-12-18  2:49               ` Josh Poimboeuf
2018-12-18  4:22                 ` Andi Kleen
2018-12-18  9:28                 ` Miroslav Benes
2018-12-18 12:15                   ` Martin Jambor
2018-12-18 12:31                     ` Steven Rostedt
2018-12-18 14:01                     ` Josh Poimboeuf
2018-12-18 21:20                       ` Andi Kleen
2018-12-19  3:44                         ` Sean Christopherson
2018-12-19 17:31                       ` Martin Jambor
2018-12-18 21:15                     ` Andi Kleen [this message]
2018-12-18 21:57                       ` Steven Rostedt
2018-12-18 22:13                         ` Andi Kleen
2018-12-18 22:16                           ` Steven Rostedt
2018-12-18 23:26                             ` Andi Kleen
2018-12-18 23:40                               ` Steven Rostedt
2018-12-19 17:38                       ` Martin Jambor
2018-12-18  3:05             ` Josh Poimboeuf
2018-12-17 23:54           ` Andi Kleen
2018-12-17 21:03       ` Andi Kleen

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=20181218211501.GD25620@tassilo.jf.intel.com \
    --to=ak@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=mjambor@suse.cz \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=x86@kernel.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.