lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1563992889.git.mhelsley@vmware.com>
Date:   Wed, 24 Jul 2019 14:04:54 -0700
From:   Matt Helsley <mhelsley@...are.com>
To:     LKML <linux-kernel@...r.kernel.org>
CC:     Ingo Molnar <mingo@...nel.org>,
        Josh Poimboeuf <jpoimboe@...hat.com>,
        Peter Zijlstra <peterz@...radead.org>,
        Steven Rostedt <rostedt@...dmis.org>,
        Matt Helsley <mhelsley@...are.com>
Subject: [PATCH v3 00/13] Cleanup recordmcount and begin objtool conversion

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ