[PATCH v2 0/3] kho: Add support for kunit mocking KHO restore API
Mike Rapoport
rppt at kernel.org
Mon Jun 1 00:00:05 PDT 2026
Hi Samiullah,
On Thu, May 21, 2026 at 07:31:59PM +0000, Samiullah Khawaja wrote:
> To write kunit tests for preservation and restoration of liveupdate
> state in various subsystems without triggering the actual kexec, the KHO
> restore API needs to be mocked by the test writer. The mocking is done
> to allow testing of the individual components or functions in isolation.
>
> The patch series adds the following to support kunit testing when using the KHO
> API:
>
> - Add static stub hooks to mock the KHO restore API so the restore path
> can be tested without triggering kexec.
> - Add helper function that can be used by the test writer to check if
> memory is preserved in KHO tree.
>
> Finally, it adds a KUnit test for the KHO API that verifies the allocation of
> preserved memory, and the preservation/restoration of pages and folios.
I looked at the tests for preservation and apparently they don't add
coverage beyond the existing KHO selftest. How hard and/or intrusive would
be adding tests for example for error paths?
Do you have an example of a kunit test for another subsystem that would
benefit from mocking of KHO APIs?
> KHO Kunit test run:
>
> KTAP version 1
> 1..1
> KTAP version 1
> # Subtest: kho_test
> # module: kexec_handover_test
> 1..3
> ok 1 kho_test_alloc_preserve
> ok 2 kho_test_preserve_pages
> ok 3 kho_test_preserve_folio
> # kho_test: pass:3 fail:0 skip:0 total:3
> # Totals: pass:3 fail:0 skip:0 total:3
> ok 1 kho_test
>
> v2:
> - Move kunit header includes above linux header includes.
> - Use the __kho_preserve_pages_order() to get the order of preserved
> pages instead of open order calculation math.
>
> Samiullah Khawaja (3):
> kho: Add kunit static stubs
> kho: Add helper function to check if pages are preserved
> kho: Add kunit test to verify preserve/restore pages and folio
>
> include/linux/kexec_handover.h | 5 +
> kernel/liveupdate/Kconfig | 10 ++
> kernel/liveupdate/Makefile | 1 +
> kernel/liveupdate/kexec_handover.c | 63 +++++++++++-
> kernel/liveupdate/kexec_handover_test.c | 131 ++++++++++++++++++++++++
> 5 files changed, 209 insertions(+), 1 deletion(-)
> create mode 100644 kernel/liveupdate/kexec_handover_test.c
>
>
> base-commit: ec4084bc445027a52f600e30a976928be1ba1950
> --
> 2.54.0.746.g67dd491aae-goog
>
--
Sincerely yours,
Mike.
More information about the kexec
mailing list