All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/13] Cleanup recordmcount and begin objtool conversion
@ 2019-07-24 21:04 Matt Helsley
  2019-07-24 21:04 ` [PATCH v3 01/13] recordmcount: Remove redundant strcmp Matt Helsley
                   ` (13 more replies)
  0 siblings, 14 replies; 25+ messages in thread
From: Matt Helsley @ 2019-07-24 21:04 UTC (permalink / raw)
  To: LKML
  Cc: Ingo Molnar, Josh Poimboeuf, Peter Zijlstra, Steven Rostedt,
	Matt Helsley

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.

---

v3:
	Rebased on mainline. s/elf_open/elf_read/ in recordmcount.c

v2:
	Fix whitespace before line continuation

	Add ftrace/mcount/record.h to objtool_dep

	Rename the Makefile variable BUILD_C_RECORDMCOUNT to
	    better reflect its purpose

	Similar: rename recordmcount_source => recordmcount_dep
	    When using objtool we can just depend on the
	    binary rather than the source the binary is
	    built from. This should address Josh's feedback and
	    make the Makefile code a bit clearer

	Add a comment to make reading the Makefile a little
	    easier

	Rebased to latest mainline -rc

	Collected some build time measurements

Build times measurements (measured for v2 posting) -- median of multiple
runs in a VM measured with "time":

	mainline (5.2.0-rc4) build times (median of 3 runs):
		real    2m58.379s
		user    2m29.621s
		sys     1m35.116s

	Post recordmcount-cleanup build times (median of 5 runs):
		real    2m51.973s
		user    2m29.094s
		sys     1m33.688s
		
	objtool mcount build times (median of 7 runs):
		real	2m57.92s
		user	2m33.73s
		sys	1m37.06s

Note: I saw some significant variation especially in the "real" time
	measurements probably because it was in a VM on a machine with
	various "idle" GUI tasks running. This is why I took the median
	rather than the mean. Though I haven't run the statistics, my
	sense is the numbers don't support concluding that things really
	got any faster or slower.

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

 Makefile                                   |   6 +-
 scripts/.gitignore                         |   1 -
 scripts/Makefile                           |   1 -
 scripts/Makefile.build                     |  25 +-
 tools/objtool/.gitignore                   |   1 +
 tools/objtool/Build                        |   1 +
 tools/objtool/Makefile                     |   1 +
 tools/objtool/builtin-mcount.c             |  72 +++++
 tools/objtool/builtin-mcount.h             |  23 ++
 tools/objtool/builtin.h                    |   1 +
 tools/objtool/objtool.c                    |   1 +
 {scripts => tools/objtool}/recordmcount.c  | 350 ++++++++++-----------
 {scripts => tools/objtool}/recordmcount.h  | 197 +++++++-----
 {scripts => tools/objtool}/recordmcount.pl |   0
 14 files changed, 406 insertions(+), 274 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


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2019-07-29 20:19 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-24 21:04 [PATCH v3 00/13] Cleanup recordmcount and begin objtool conversion Matt Helsley
2019-07-24 21:04 ` [PATCH v3 01/13] recordmcount: Remove redundant strcmp Matt Helsley
2019-07-24 21:04 ` [PATCH v3 02/13] recordmcount: Remove uread() Matt Helsley
2019-07-24 21:04 ` [PATCH v3 03/13] recordmcount: Remove unused fd from uwrite() and ulseek() Matt Helsley
2019-07-24 21:04 ` [PATCH v3 04/13] recordmcount: Rewrite error/success handling Matt Helsley
2019-07-26 17:45   ` Steven Rostedt
2019-07-26 18:37     ` Matt Helsley
2019-07-26 18:43       ` Steven Rostedt
2019-07-26 19:23         ` Matt Helsley
2019-07-24 21:04 ` [PATCH v3 05/13] recordmcount: Kernel style function signature formatting Matt Helsley
2019-07-24 21:05 ` [PATCH v3 06/13] recordmcount: Kernel style formatting Matt Helsley
2019-07-24 21:05 ` [PATCH v3 07/13] recordmcount: Remove redundant cleanup() calls Matt Helsley
2019-07-24 21:05 ` [PATCH v3 08/13] recordmcount: Clarify what cleanup() does Matt Helsley
2019-07-26 16:10   ` Steven Rostedt
2019-07-26 16:13   ` Steven Rostedt
2019-07-24 21:05 ` [PATCH v3 09/13] objtool: Prepare to merge recordmcount Matt Helsley
2019-07-28 17:48   ` Josh Poimboeuf
2019-07-29 20:10     ` Matt Helsley
2019-07-24 21:05 ` [PATCH v3 10/13] objtool: Make recordmcount into an objtool subcmd Matt Helsley
2019-07-28 17:48   ` Josh Poimboeuf
2019-07-29 20:19     ` Matt Helsley
2019-07-24 21:05 ` [PATCH v3 11/13] objtool: recordmcount: Start using objtool's elf wrapper Matt Helsley
2019-07-24 21:05 ` [PATCH v3 12/13] objtool: recordmcount: Search for __mcount_loc before walking the sections Matt Helsley
2019-07-24 21:05 ` [PATCH v3 13/13] objtool: recordmcount: Convert do_func() relhdrs Matt Helsley
2019-07-28 17:52 ` [PATCH v3 00/13] Cleanup recordmcount and begin objtool conversion Josh Poimboeuf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.