From: Song Liu <song@kernel.org>
To: live-patching@vger.kernel.org, linux-kselftest@vger.kernel.org
Cc: jpoimboe@kernel.org, jikos@kernel.org, mbenes@suse.cz,
pmladek@suse.com, joe.lawrence@redhat.com, shuah@kernel.org,
linux-kernel@vger.kernel.org, Song Liu <song@kernel.org>
Subject: [PATCH v2 00/12] klp-build: Fix dependent patches, add selftests
Date: Wed, 28 Oct 2026 14:45:22 -0700 [thread overview]
Message-ID: <20261028214534.1919398-1-song@kernel.org> (raw)
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
next reply other threads:[~2026-10-28 21:45 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 21:45 Song Liu [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261028214534.1919398-1-song@kernel.org \
--to=song@kernel.org \
--cc=jikos@kernel.org \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=pmladek@suse.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.