public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/48] objtool/klp: Some klp-build fixes and improvements
@ 2026-04-23  4:03 Josh Poimboeuf
  2026-04-23  4:03 ` [PATCH 01/48] objtool/klp: Fix is_uncorrelated_static_local() for Clang Josh Poimboeuf
                   ` (47 more replies)
  0 siblings, 48 replies; 80+ messages in thread
From: Josh Poimboeuf @ 2026-04-23  4:03 UTC (permalink / raw)
  To: x86
  Cc: linux-kernel, live-patching, Peter Zijlstra, Joe Lawrence,
	Song Liu, Miroslav Benes, Petr Mladek

While working on the (upcoming) arm64 support, I ended up shaking out a
lot of bugs by tested several patches on a variety of configs (distro,
LTO, FineIBT, kCFI, etc).

While arm64 support seems to be working well, I decided to leave those
patches out of this set to try to keep the number of patches
"reasonable".

And these stand alone as nice improvements for x86 anyway.

Full arm64 support (this set + 19 more) can be found here:

  git://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git klp-build-arm64


Joe Lawrence (2):
  objtool/klp: Fix is_uncorrelated_static_local() for Clang
  objtool/klp: Fix create_fake_symbols() skipping entsize-based sections

Josh Poimboeuf (46):
  objtool/klp: Fix .data..once static local non-correlation
  objtool/klp: Don't correlate __ADDRESSABLE() symbols
  objtool/klp: Ignore __UNIQUE_ID_*() PCI stub functions
  objtool: Move mark_rodata() to elf.c
  objtool/klp: Don't correlate rodata symbols
  objtool/klp: Don't correlate absolute symbols
  objtool/klp: Don't correlate __initstub__ symbols
  objtool/klp: Fix --debug-checksum for duplicate symbol names
  objtool/klp: Fix handling of zero-length .altinstr_replacement
    sections
  objtool/klp: Fix cloning of zero-length section symbols
  objtool/klp: Fix XXH3 state memory leak
  objtool/klp: Fix extraction of text annotations for alternatives
  objtool/klp: Fix kCFI trap handling
  objtool/klp: Fix relocation conversion failures for R_X86_64_NONE
  objtool: Fix reloc hash collision in find_reloc_by_dest_range()
  klp-build: Fix hang on out-of-date .config
  klp-build: Fix checksum comparison for changed offsets
  klp-build: Don't use errexit
  klp-build: Validate patch file existence
  klp-build: Suppress excessive fuzz output by default
  klp-build: Fix patch cleanup on interrupt
  klp-build: Reject patches to vDSO
  klp-build: Reject patches to realmode
  objtool/klp: Don't set sym->file for section symbols
  objtool: Include libsubcmd headers directly from source tree
  objtool/klp: Create empty checksum sections for function-less object
    files
  klp-build: Print "objtool klp diff" command in verbose mode
  objtool/klp: Handle Clang .data..Lanon anonymous data sections
  objtool: Add is_alias_sym() helper
  objtool: Add is_cold_func() helper
  objtool/klp: Extricate checksum calculation from validate_branch()
  objtool: Consolidate file decoding into decode_file()
  objtool/klp: Add "objtool klp checksum" subcommand
  klp-build: Use "objtool klp checksum" subcommand
  objtool/klp: Remove "objtool --checksum"
  klp-build: Validate short-circuit prerequisites
  objtool: Replace iterator callbacks with for_each_sym_by_*()
  objtool/klp: Calculate object checksums
  objtool/klp: Rewrite symbol correlation algorithm
  objtool/klp: Add correlation debugging output
  objtool: Add insn_sym() helper
  objtool/klp: Fix position-dependent checksums for non-relocated
    jumps/calls
  x86/Kconfig: Enable CONFIG_PREFIX_SYMBOLS for FineIBT
  objtool/klp: Make function prefix handling more generic
  objtool: Improve and simplify prefix symbol detection
  objtool/klp: Cache dont_correlate() result

 arch/x86/Kconfig                         |   2 +-
 scripts/livepatch/klp-build              | 183 +++--
 tools/objtool/Build                      |   2 +-
 tools/objtool/Makefile                   |   4 +-
 tools/objtool/arch/x86/decode.c          |  17 +-
 tools/objtool/builtin-check.c            |  17 +-
 tools/objtool/builtin-klp.c              |   1 +
 tools/objtool/check.c                    | 363 ++--------
 tools/objtool/disas.c                    |  22 +-
 tools/objtool/elf.c                      |  96 +--
 tools/objtool/include/objtool/arch.h     |   3 +
 tools/objtool/include/objtool/check.h    |  33 +-
 tools/objtool/include/objtool/checksum.h |  52 +-
 tools/objtool/include/objtool/elf.h      |  69 +-
 tools/objtool/include/objtool/klp.h      |   1 +
 tools/objtool/include/objtool/warn.h     |  57 +-
 tools/objtool/klp-checksum.c             | 346 +++++++++
 tools/objtool/klp-diff.c                 | 861 +++++++++++++++++------
 tools/objtool/objtool.c                  |   3 -
 tools/objtool/trace.c                    |   8 +-
 20 files changed, 1431 insertions(+), 709 deletions(-)
 create mode 100644 tools/objtool/klp-checksum.c

-- 
2.53.0


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

end of thread, other threads:[~2026-04-24  3:38 UTC | newest]

Thread overview: 80+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-23  4:03 [PATCH 00/48] objtool/klp: Some klp-build fixes and improvements Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 01/48] objtool/klp: Fix is_uncorrelated_static_local() for Clang Josh Poimboeuf
2026-04-23 18:45   ` Song Liu
2026-04-23  4:03 ` [PATCH 02/48] objtool/klp: Fix .data..once static local non-correlation Josh Poimboeuf
2026-04-23 18:54   ` Song Liu
2026-04-23 23:34     ` Josh Poimboeuf
2026-04-23 23:54       ` Song Liu
2026-04-23  4:03 ` [PATCH 03/48] objtool/klp: Don't correlate __ADDRESSABLE() symbols Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 04/48] objtool/klp: Ignore __UNIQUE_ID_*() PCI stub functions Josh Poimboeuf
2026-04-23 19:05   ` Song Liu
2026-04-23 19:31     ` Josh Poimboeuf
2026-04-23 21:33       ` Song Liu
2026-04-23 23:50         ` Josh Poimboeuf
2026-04-23 23:54           ` Song Liu
2026-04-23  4:03 ` [PATCH 05/48] objtool: Move mark_rodata() to elf.c Josh Poimboeuf
2026-04-23  8:19   ` Peter Zijlstra
2026-04-23  4:03 ` [PATCH 06/48] objtool/klp: Don't correlate rodata symbols Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 07/48] objtool/klp: Don't correlate absolute symbols Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 08/48] objtool/klp: Don't correlate __initstub__ symbols Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 09/48] objtool/klp: Fix create_fake_symbols() skipping entsize-based sections Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 10/48] objtool/klp: Fix --debug-checksum for duplicate symbol names Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 11/48] objtool/klp: Fix handling of zero-length .altinstr_replacement sections Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 12/48] objtool/klp: Fix cloning of zero-length section symbols Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 13/48] objtool/klp: Fix XXH3 state memory leak Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 14/48] objtool/klp: Fix extraction of text annotations for alternatives Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 15/48] objtool/klp: Fix kCFI trap handling Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 16/48] objtool/klp: Fix relocation conversion failures for R_X86_64_NONE Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 17/48] objtool: Fix reloc hash collision in find_reloc_by_dest_range() Josh Poimboeuf
2026-04-23  8:32   ` Peter Zijlstra
2026-04-23 16:34     ` Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 18/48] klp-build: Fix hang on out-of-date .config Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 19/48] klp-build: Fix checksum comparison for changed offsets Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 20/48] klp-build: Don't use errexit Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 21/48] klp-build: Validate patch file existence Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 22/48] klp-build: Suppress excessive fuzz output by default Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 23/48] klp-build: Fix patch cleanup on interrupt Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 24/48] klp-build: Reject patches to vDSO Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 25/48] klp-build: Reject patches to realmode Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 26/48] objtool/klp: Don't set sym->file for section symbols Josh Poimboeuf
2026-04-23  8:34   ` Peter Zijlstra
2026-04-23  4:03 ` [PATCH 27/48] objtool: Include libsubcmd headers directly from source tree Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 28/48] objtool/klp: Create empty checksum sections for function-less object files Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 29/48] klp-build: Print "objtool klp diff" command in verbose mode Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 30/48] objtool/klp: Handle Clang .data..Lanon anonymous data sections Josh Poimboeuf
2026-04-23  4:03 ` [PATCH 31/48] objtool: Add is_alias_sym() helper Josh Poimboeuf
2026-04-23  8:35   ` Peter Zijlstra
2026-04-23  4:04 ` [PATCH 32/48] objtool: Add is_cold_func() helper Josh Poimboeuf
2026-04-23  8:38   ` Peter Zijlstra
2026-04-23 15:12     ` Josh Poimboeuf
2026-04-23 15:14       ` Peter Zijlstra
2026-04-23 19:23         ` Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 33/48] objtool/klp: Extricate checksum calculation from validate_branch() Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 34/48] objtool: Consolidate file decoding into decode_file() Josh Poimboeuf
2026-04-23  8:41   ` Peter Zijlstra
2026-04-23  4:04 ` [PATCH 35/48] objtool/klp: Add "objtool klp checksum" subcommand Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 36/48] klp-build: Use " Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 37/48] objtool/klp: Remove "objtool --checksum" Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 38/48] klp-build: Validate short-circuit prerequisites Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 39/48] objtool: Replace iterator callbacks with for_each_sym_by_*() Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 40/48] objtool/klp: Calculate object checksums Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 41/48] objtool/klp: Rewrite symbol correlation algorithm Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 42/48] objtool/klp: Add correlation debugging output Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 43/48] objtool: Add insn_sym() helper Josh Poimboeuf
2026-04-23  8:45   ` Peter Zijlstra
2026-04-23 15:14     ` Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 44/48] objtool/klp: Fix position-dependent checksums for non-relocated jumps/calls Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 45/48] x86/Kconfig: Enable CONFIG_PREFIX_SYMBOLS for FineIBT Josh Poimboeuf
2026-04-23  8:47   ` Peter Zijlstra
2026-04-23 15:16     ` Josh Poimboeuf
2026-04-23 15:19       ` Peter Zijlstra
2026-04-23 16:23         ` Josh Poimboeuf
2026-04-23 16:29           ` Peter Zijlstra
2026-04-23 23:30           ` Josh Poimboeuf
2026-04-24  3:38             ` Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 46/48] objtool/klp: Make function prefix handling more generic Josh Poimboeuf
2026-04-23  4:04 ` [PATCH 47/48] objtool: Improve and simplify prefix symbol detection Josh Poimboeuf
2026-04-23  8:55   ` Peter Zijlstra
2026-04-23 15:19     ` Josh Poimboeuf
2026-04-23 15:21       ` Peter Zijlstra
2026-04-23  4:04 ` [PATCH 48/48] objtool/klp: Cache dont_correlate() result Josh Poimboeuf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox