[PATCH v2 0/6] selftests/liveupdate: add memfd tests

Pratyush Yadav
2026-04-03T19:40:25Z

Hi,

This series adds some tests for memfd preservation across a live update.
Currently memfd is only tested indirectly via luo_kexec_simple or
luo_multi_session. Add a dedicated test suite for it.

Patches 1 and 2 are preparatory, adding base framework and helpers, and
the other patches each add a test. Some of the code is taken from the
libluo patches [0] I sent a while ago.

[0] https://lore.kernel.org/linux-mm/20250723144649.1696299-33-pasha.tatashin@soleen.com/

Changes in v2:
- Drop LIVEUPDATE_DEV since it isn't used.
- Split luo_fd and stage declaration on separate lines.
- Split all 2-stage tests into helper function for each test.
- Fix wording and argument order when LUO_DEVICE fails to open.
- Rename verify_fd_content() to verify_fd_content_read().
- Advance buffer pointer in {read,write}_size().
- Add a check to make sure current working directory is not on a tmpfs
mount. If so, skip the tests since saved data files will be lost.
- Rename RANDOM_DATA_FILE and RANDOM_DATA_FILE_FALLOCATE to
MEMFD_DATA_FS_COPY and FALLOCATE_DATA_FS_COPY respectively. Also
update the file names to reflect this naming convention.
- Collect R-bys.

Regards,
Pratyush Yadav

Pratyush Yadav (Google) (6):
selftests/liveupdate: add framework for memfd tests
selftests/liveupdate: add helper functions for memfd tests
selftests/liveupdate: add test for memfd content preservation
selftests/liveupdate: add test for zero-size memfd preservation
selftests/liveupdate: add test for operations on a preserved memfd
selftests/liveupdate: add fallocate test for memfd

tools/testing/selftests/liveupdate/Makefile | 2 +
.../testing/selftests/liveupdate/luo_memfd.c | 355 ++++++++++++++++++
.../selftests/liveupdate/luo_test_utils.c | 189 +++++++++-
.../selftests/liveupdate/luo_test_utils.h | 10 +
4 files changed, 555 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/liveupdate/luo_memfd.c

base-commit: 98ddd87f9704ef2fc837ec2ca38877c364d8dada
--
2.53.0.1213.gd9a14994de-goog