Files
Rafael Aquini bd8dfda117 tracing: Disable branch profiling in noinstr code
JIRA: https://redhat.atlassian.net/browse/RHEL-145694

commit 2cbb20b008dba39893f0e296dc8ca312f40a9a0e
Author: Josh Poimboeuf <jpoimboe@kernel.org>
Date:   Fri Mar 21 12:53:32 2025 -0700

    tracing: Disable branch profiling in noinstr code

    CONFIG_TRACE_BRANCH_PROFILING inserts a call to ftrace_likely_update()
    for each use of likely() or unlikely().  That breaks noinstr rules if
    the affected function is annotated as noinstr.

    Disable branch profiling for files with noinstr functions.  In addition
    to some individual files, this also includes the entire arch/x86
    subtree, as well as the kernel/entry, drivers/cpuidle, and drivers/idle
    directories, all of which are noinstr-heavy.

    Due to the nature of how sched binaries are built by combining multiple
    .c files into one, branch profiling is disabled more broadly across the
    sched code than would otherwise be needed.

    This fixes many warnings like the following:

      vmlinux.o: warning: objtool: do_syscall_64+0x40: call to ftrace_likely_update() leaves .noinstr.text section
      vmlinux.o: warning: objtool: __rdgsbase_inactive+0x33: call to ftrace_likely_update() leaves .noinstr.text section
      vmlinux.o: warning: objtool: handle_bug.isra.0+0x198: call to ftrace_likely_update() leaves .noinstr.text section
      ...

    Reported-by: Ingo Molnar <mingo@kernel.org>
    Suggested-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: https://lore.kernel.org/r/fb94fc9303d48a5ed370498f54500cc4c338eb6d.1742586676.git.jpoimboe@kernel.org

Signed-off-by: Rafael Aquini <raquini@redhat.com>
2026-07-01 16:17:32 -04:00
..