From: Chris Down <chris@chrisdown.name>
To: Pasha Tatashin <pasha.tatashin@soleen.com>,
Mike Rapoport <rppt@kernel.org>,
Pratyush Yadav <pratyush@kernel.org>
Cc: Alexander Graf <graf@amazon.com>,
Baoquan He <baoquan.he@linux.dev>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
kexec@lists.infradead.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kselftest@vger.kernel.org, kernel-team@meta.com
Subject: [PATCH 0/9] kho, liveupdate: KHO/LUO observability
Date: Tue, 10 Nov 2026 23:52:46 -0800 [thread overview]
Message-ID: <cover.1794383544.git.chris@chrisdown.name> (raw)
At Meta, we are moving towards using live update on hypervisors whose
VMs can't be migrated away first. We also want to preserve service fd
stores across systemctl kexec.
Our kernel rollout is driven by health checks from each host. For
example, an increase in rejected handovers or retrieval failures may be
a reason to stop a rollout, and the bootmem size and sequence number
help us understand what is happening on which hosts. The series exposes:
- how much memory KHO set aside
- whether the new kernel accepted the incoming handover
- whether LUO could give back the state that userspace handed over
We expose these in sysfs so the collector can read them without opening
/dev/liveupdate, which starts deserialisation, or depending on debugfs
or the kernel log.
I also noticed that the incoming kexec metadata page stays reserved
after boot, so free it once its contents have been copied.
Chris Down (9):
kho: Reclaim the metadata page left reserved after kexec
kho: Make bootmem reservations visible to fleet monitoring
liveupdate: Make failed retrieves distinguishable from dropped files
selftests/liveupdate: Catch incorrect file accounting across kexec
selftests/kho: Catch missing or zero bootmem reports before kexec
kho: Expose rejected handovers that look like cold boots
kho: Report how much handover memory is preserved and restored
liveupdate: Expose the sequence number for consecutive live updates
selftests/liveupdate: Check handover revival, sequence and memory
stats
.../ABI/testing/sysfs-class-misc-liveupdate | 56 ++++
.../ABI/testing/sysfs-kernel-kexec-kdump | 30 ++
Documentation/admin-guide/mm/kho.rst | 19 +-
Documentation/userspace-api/liveupdate.rst | 8 +
MAINTAINERS | 1 +
include/linux/kexec_handover.h | 3 +
kernel/kexec_core.c | 26 +-
kernel/liveupdate/kexec_handover.c | 82 +++++-
kernel/liveupdate/luo_core.c | 58 ++++
kernel/liveupdate/luo_file.c | 16 +-
kernel/liveupdate/luo_internal.h | 34 +++
kernel/liveupdate/luo_session.c | 6 +
tools/testing/selftests/kho/init.c | 24 ++
tools/testing/selftests/kho/vmtest.sh | 1 +
tools/testing/selftests/liveupdate/Makefile | 1 +
tools/testing/selftests/liveupdate/init.c | 5 +
.../selftests/liveupdate/luo_handover_stats.c | 258 ++++++++++++++++++
.../selftests/liveupdate/run-vmtests.sh | 1 +
tools/testing/selftests/liveupdate/vmtest.sh | 2 +
19 files changed, 624 insertions(+), 7 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-class-misc-liveupdate
create mode 100644 tools/testing/selftests/liveupdate/luo_handover_stats.c
base-commit: a0dc8eddbfdb6dd9c5c2b70eb66ab49cb1978425
--
2.54.0
next reply other threads:[~2026-11-11 7:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 7:52 Chris Down [this message]
2026-11-11 7:52 ` [PATCH 1/9] kho: Reclaim the metadata page left reserved after kexec Chris Down
2026-11-11 7:53 ` [PATCH 2/9] kho: Make bootmem reservations visible to fleet monitoring Chris Down
2026-11-11 7:53 ` [PATCH 3/9] liveupdate: Make failed retrieves distinguishable from dropped files Chris Down
2026-11-11 7:53 ` [PATCH 4/9] selftests/liveupdate: Catch incorrect file accounting across kexec Chris Down
2026-11-11 7:53 ` [PATCH 5/9] selftests/kho: Catch missing or zero bootmem reports before kexec Chris Down
2026-11-11 7:53 ` [PATCH 6/9] kho: Expose rejected handovers that look like cold boots Chris Down
2026-11-11 7:53 ` [PATCH 7/9] kho: Report how much handover memory is preserved and restored Chris Down
2026-11-11 7:53 ` [PATCH 8/9] liveupdate: Expose the sequence number for consecutive live updates Chris Down
2026-11-11 7:53 ` [PATCH 9/9] selftests/liveupdate: Check handover revival, sequence and memory stats Chris Down
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=cover.1794383544.git.chris@chrisdown.name \
--to=chris@chrisdown.name \
--cc=baoquan.he@linux.dev \
--cc=corbet@lwn.net \
--cc=graf@amazon.com \
--cc=kernel-team@meta.com \
--cc=kexec@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pasha.tatashin@soleen.com \
--cc=pratyush@kernel.org \
--cc=rppt@kernel.org \
--cc=skhan@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®