All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/12] klp-build: Fix dependent patches, add selftests
@ 2026-10-28 21:45 Song Liu
  2026-10-28 21:45 ` [PATCH v2 01/12] klp-build: Fix dependent patches in a series Song Liu
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Song Liu @ 2026-10-28 21:45 UTC (permalink / raw)
  To: live-patching, linux-kselftest
  Cc: jpoimboe, jikos, mbenes, pmladek, joe.lawrence, shuah,
	linux-kernel, Song Liu

klp-build fails when a later patch in the series depends on an earlier
one, because it fixes each patch against the original source on its
own.  Patch 1 fixes this by combining the patches into a single patch
before adding the #line directives.

Patch 2 does this while validating the patches, before the original
kernel build, so problems with the patches show up without waiting for
a build.

Patch 3 moves the patch processing into a new script,
klp-prepare-patch, which klp-build runs.  It doesn't need a kernel
build, so it can be tested on its own.

Patches 4-12 add a kselftest target, livepatch/test_klp_build.  Each
test builds a small source tree, runs klp-prepare-patch on some
patches, and checks the patch it prints.  The tests compile nothing,
need no root, and take about a second.  To run them:

  make -C tools/testing/selftests/livepatch/test_klp_build tests

Changes in v2:
- Patch 1: describe combine_patches() without "refresh", rename
  fix_patches() to process_patches(), keep the combined patch in
  $COMBINED_PATCH rather than $PATCHES, change the status message to
  "Processing patch(es)", fold get_patch_{input,output}_files() into
  get_patch_files(), and keep tmp.patch in klp-tmp (Josh)
- New patch 2: process the patches while validating them, before the
  original kernel build (Josh)
- Replace the --patch-only option with a klp-prepare-patch script,
  which the selftests run directly (Josh).  The intermediate patch
  without #line directives now lives in klp-prepare-patch's own
  temporary directory, which is removed on exit.
- Make the dependent patches test a case of test-basic.sh (Sashiko)
- Name the selftest helpers and subjects after klp-prepare-patch

v1: https://lore.kernel.org/all/20261017002441.716615-1-song@kernel.org/

Song Liu (12):
  klp-build: Fix dependent patches in a series
  klp-build: Process the patches before building the original kernel
  klp-build: Move patch processing to klp-prepare-patch
  selftests/livepatch: Add tests for klp-prepare-patch
  selftests/livepatch: Test klp-prepare-patch with dependent patches
  selftests/livepatch: Test klp-prepare-patch with independent patches
  selftests/livepatch: Test klp-prepare-patch with patches which cancel
    out
  selftests/livepatch: Test klp-prepare-patch with created and deleted
    files
  selftests/livepatch: Test where klp-prepare-patch adds #line
    directives
  selftests/livepatch: Test klp-prepare-patch with unsupported files
  selftests/livepatch: Test klp-prepare-patch with patches which don't
    apply
  selftests/livepatch: Test klp-prepare-patch with offset and fuzz

 scripts/livepatch/Makefile                    |   3 +-
 scripts/livepatch/klp-build                   | 137 +--------
 scripts/livepatch/klp-prepare-patch           | 277 ++++++++++++++++++
 tools/testing/selftests/Makefile              |   1 +
 tools/testing/selftests/livepatch/README      |  16 +
 .../livepatch/test_klp_build/Makefile         |  26 ++
 .../livepatch/test_klp_build/functions.sh     | 149 ++++++++++
 .../livepatch/test_klp_build/run-tests.sh     |  68 +++++
 .../livepatch/test_klp_build/test-basic.sh    |  93 ++++++
 .../test_klp_build/test-cancelling-patches.sh | 102 +++++++
 .../test-independent-patches.sh               | 124 ++++++++
 .../test_klp_build/test-line-directives.sh    | 175 +++++++++++
 .../test-new-and-deleted-files.sh             |  94 ++++++
 .../test_klp_build/test-offset-and-fuzz.sh    | 120 ++++++++
 .../test_klp_build/test-patch-not-applying.sh |  73 +++++
 .../test_klp_build/test-unsupported-files.sh  |  30 ++
 16 files changed, 1366 insertions(+), 122 deletions(-)
 create mode 100755 scripts/livepatch/klp-prepare-patch
 create mode 100644 tools/testing/selftests/livepatch/test_klp_build/Makefile
 create mode 100644 tools/testing/selftests/livepatch/test_klp_build/functions.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/run-tests.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-basic.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-cancelling-patches.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-independent-patches.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-line-directives.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-new-and-deleted-files.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-offset-and-fuzz.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-patch-not-applying.sh
 create mode 100755 tools/testing/selftests/livepatch/test_klp_build/test-unsupported-files.sh

-- 
2.53.0-Meta


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

end of thread, other threads:[~2026-10-28 21:46 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 21:45 [PATCH v2 00/12] klp-build: Fix dependent patches, add selftests Song Liu
2026-10-28 21:45 ` [PATCH v2 01/12] klp-build: Fix dependent patches in a series Song Liu
2026-10-28 21:45 ` [PATCH v2 02/12] klp-build: Process the patches before building the original kernel Song Liu
2026-10-28 21:45 ` [PATCH v2 03/12] klp-build: Move patch processing to klp-prepare-patch Song Liu
2026-10-28 21:45 ` [PATCH v2 04/12] selftests/livepatch: Add tests for klp-prepare-patch Song Liu
2026-10-28 21:45 ` [PATCH v2 05/12] selftests/livepatch: Test klp-prepare-patch with dependent patches Song Liu
2026-10-28 21:45 ` [PATCH v2 06/12] selftests/livepatch: Test klp-prepare-patch with independent patches Song Liu
2026-10-28 21:45 ` [PATCH v2 07/12] selftests/livepatch: Test klp-prepare-patch with patches which cancel out Song Liu
2026-10-28 21:45 ` [PATCH v2 08/12] selftests/livepatch: Test klp-prepare-patch with created and deleted files Song Liu
2026-10-28 21:45 ` [PATCH v2 09/12] selftests/livepatch: Test where klp-prepare-patch adds #line directives Song Liu
2026-10-28 21:45 ` [PATCH v2 10/12] selftests/livepatch: Test klp-prepare-patch with unsupported files Song Liu
2026-10-28 21:45 ` [PATCH v2 11/12] selftests/livepatch: Test klp-prepare-patch with patches which don't apply Song Liu
2026-10-28 21:45 ` [PATCH v2 12/12] selftests/livepatch: Test klp-prepare-patch with offset and fuzz Song Liu

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.