On Tue, 20 Aug 2024 18:11:09 -0400
Steven Rostedt <rost...@goodmis.org> wrote:

> On Wed, 21 Aug 2024 07:05:39 +0900
> Masami Hiramatsu (Google) <mhira...@kernel.org> wrote:
> 
> 
> > Does the noinline attribute prevent embedding callsite too? I mean
> > 
> > extern callee()
> > 
> > noinline callee()
> > {
> > ...
> > }
> > 
> > caller()
> > {
> >     callee() // (*)
> > }
> > 
> > In this case, does noinline prevent LTO to embed the callee at the 
> > callsite(*)
> > or prevent LTO remove the callee() symbol?
> >
> 
> Even though we have it passed as a parameter, I think the compiler and
> linker is smart enough to see that and notice its use, and that the
> function passed in is a nop, which doesn't break the flow.
> 
> Can you add the __used and see if it fixes it?

Adding __used to DYN_FTRACE_TEST_NAME() and DYN_FTRACE_TEST_NAME2() does
not change, the test still fails. Hmm, what about makes the caller
(trace_selftest_startup_dynamic_tracing()) called via a function pointer?
In that case, wouldn't it be subject to constant propagetion?

Let me try.

Thanks,

> 
> -- Steve


-- 
Masami Hiramatsu (Google) <mhira...@kernel.org>

Reply via email to