Re: vmlinux.o: warning: objtool: stackleak_erase()+0x35: call to ftrace_likely_update() leaves .noinstr.text section

From: Peter Zijlstra
Date: Tue Apr 05 2022 - 08:05:03 EST


On Mon, Apr 04, 2022 at 03:25:02PM -0400, Steven Rostedt wrote:
> On Mon, 4 Apr 2022 11:27:47 -0700
> Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> > I got CCed on this because of stackleak_erase() triggering, this, but it
> > appears to be an existing issue for other callers too. It looks like
> > __branch_check__() shouldn't be emitting ftrace_likely_update() calls
> > for noinstr functions...
> >
> > I have no idea how a macro is meant to check for function attributes,
> > though... :(
>
> Ignore it. It's the branch tracer enabled (that is, every "if ()" is being
> traced).
>
> Although I still use the branch profiler, I do not believe anyone uses the
> branch tracer. The branch profiler updates an array of counters that tells
> when the branch was true or false, the branch tracer actually traces
> (records an event) for every branch in the system!

\o/

> I think I'll just send a patch to nuke the tracer. I'm sure Peter Zijlstra
> will be happy when I do that. But I still want the profiler, as I find that
> useful.

It'll explode the moment Lai's entry rework goes through. That'll make
us run C code before we switch to the kernel address space, so your
counters will not exist/be-mapped and *BOOM*.