Re: [PATCH 04/22] kbuild: lto: fix recordmcount
From: Sami Tolvanen <samitolvanen@google.com>
Date: 2020-06-24 21:45:43
Also in:
linux-arch, linux-kbuild, linux-pci, lkml
From: Sami Tolvanen <samitolvanen@google.com>
Date: 2020-06-24 21:45:43
Also in:
linux-arch, linux-kbuild, linux-pci, lkml
On Wed, Jun 24, 2020 at 11:27:37PM +0200, Peter Zijlstra wrote:
On Wed, Jun 24, 2020 at 01:31:42PM -0700, Sami Tolvanen wrote:quoted
With LTO, LLVM bitcode won't be compiled into native code until modpost_link. This change postpones calls to recordmcount until after this step. In order to exclude specific functions from inspection, we add a new code section .text..nomcount, which we tell recordmcount to ignore, and a __nomcount attribute for moving functions to this section.I'm confused, you only add this to functions in ftrace itself, which is compiled with: KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) and so should not have mcount/fentry sites anyway. So what's the point of ignoring them further? This Changelog does not explain.
Normally, recordmcount ignores each ftrace.o file, but since we are running it on vmlinux.o, we need another way to stop it from looking at references to mcount/fentry that are not calls. Here's a comment from recordmcount.c: /* * The file kernel/trace/ftrace.o references the mcount * function but does not call it. Since ftrace.o should * not be traced anyway, we just skip it. */ But I agree, the commit message could use more defails. Also +Steven for thoughts about this approach. Sami _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel