Re: [RFC][PATCH 00/13] Cleanup recordmcount and begin objtool conversion

From: Josh Poimboeuf
Date: Tue May 28 2019 - 10:46:59 EST


On Wed, May 22, 2019 at 05:03:23PM -0700, Matt Helsley wrote:
> This series cleans up recordmcount and then makes it into
> an objtool subcommand.
>
> The series starts with 8 cleanup patches which make recordmcount
> easier to review and integrate with objtool. The final 5 patches
> show the beginning steps of converting recordmcount to use objtool's
> ELF code rather than its own open-coded methods of accessing ELF
> files.

Hi Matt,

Thanks for the patches. This looks like a good step in the right
direction.

What's the performance difference between the old recordmcount and the
new version which relies on elf_open()? It would be useful to compare
kernel build times, before and after.

Would it be feasible to eventually combine subcommands so that objtool
could do both ORC and mcount generation in a single invocation? I
wonder what what the interface would look like.

> Matt Helsley (13):
> recordmcount: Remove redundant strcmp
> recordmcount: Remove uread()
> recordmcount: Remove unused fd from uwrite() and ulseek()
> recordmcount: Rewrite error/success handling
> recordmcount: Kernel style function signature formatting
> recordmcount: Kernel style formatting
> recordmcount: Remove redundant cleanup() calls
> recordmcount: Clarify what cleanup() does
> objtool: Prepare to merge recordmcount
> objtool: Make recordmcount into an objtool subcmd
> objtool: recordmcount: Start using objtool's elf wrapper
> objtool: recordmcount: Search for __mcount_loc before walking the
> sections
> objtool: recordmcount: Convert do_func() relhdrs
>
> scripts/.gitignore | 1 -
> scripts/Makefile | 1 -
> scripts/Makefile.build | 22 +-
> tools/objtool/.gitignore | 1 +
> tools/objtool/Build | 1 +
> tools/objtool/Makefile | 7 +-
> tools/objtool/builtin-mcount.c | 72 +++++
> tools/objtool/builtin-mcount.h | 23 ++
> tools/objtool/builtin.h | 6 +
> tools/objtool/objtool.c | 6 +
> {scripts => tools/objtool}/recordmcount.c | 350 ++++++++++-----------
> {scripts => tools/objtool}/recordmcount.h | 197 +++++++-----
> {scripts => tools/objtool}/recordmcount.pl | 0
> 13 files changed, 420 insertions(+), 267 deletions(-)
> create mode 100644 tools/objtool/builtin-mcount.c
> create mode 100644 tools/objtool/builtin-mcount.h
> rename {scripts => tools/objtool}/recordmcount.c (78%)
> rename {scripts => tools/objtool}/recordmcount.h (78%)
> rename {scripts => tools/objtool}/recordmcount.pl (100%)
>
> --
> 2.20.1
>

--
Josh