All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pratyush Yadav <pratyush@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Tarun Sahu <tarunsahu@google.com>,
	 ackerleytng@google.com, fuad.tabba@linux.dev,
	 Andrew Morton <akpm@linux-foundation.org>,
	dmatlack@google.com,  Shuah Khan <skhan@linuxfoundation.org>,
	 Jonathan Corbet <corbet@lwn.net>,
	 david@redhat.com,  Pasha Tatashin <pasha.tatashin@soleen.com>,
	 Pratyush Yadav <pratyush@kernel.org>,
	sagis@google.com,  Paolo Bonzini <pbonzini@redhat.com>,
	 Mike Rapoport <rppt@kernel.org>,
	 Alexander Graf <graf@amazon.com>,
	linux-kselftest@vger.kernel.org,  andre.przywara@arm.com,
	michael.roth@amd.com,  linux-kernel@vger.kernel.org,
	 linux-mm@kvack.org, will@kernel.org,  vannapurve@google.com,
	 maz@kernel.org, fvdl@google.com,  kvm@vger.kernel.org,
	 oliver.upton@linux.dev, kvmarm@lists.linux.dev,
	 alexandru.elisei@arm.com,  skhawaja@google.com,
	aneesh.kumar@kernel.org,  linux-doc@vger.kernel.org,
	 David Hildenbrand <david@kernel.org>,
	 yan.y.zhao@intel.com,  kexec@lists.infradead.org,
	suzuki.poulose@arm.com
Subject: Re: [PATCH v4 05/11] KVM: LUO: Support VM preservation across live updates
Date: Tue, 11 Aug 2026 13:31:43 +0200	[thread overview]
Message-ID: <2vxzpkzo51wg.fsf@kernel.org> (raw)
In-Reply-To: <anphyjFv3FhF61iB@google.com> (Sean Christopherson's message of "Mon, 10 Aug 2026 16:42:02 -0700")

On Mon, Aug 10 2026, Sean Christopherson wrote:

> On Tue, Jul 28, 2026, Tarun Sahu wrote:
>> Register a Live Update Orchestrator (LUO) file handler for KVM VM files
>> to serialize and deserialize VM state across kexec live updates.
>> 
>> Currently, Only VM type (e.g. arch.vm_type on x86) is preserved as part
>> of VM preservation.
>
> Why?
>
>> On retrieval, kvm_luo_retrieve() recreates the KVM VM file via
>> kvm_create_vm_file() and use an atomically incremented ID for the internal
>> fdname, as the final fdname assigned by userspace is not yet known during
>> retrieval. As this fdname is only used in debugfs infra, This will not break
>> any UAPI.
>> 
>> This infrastructure establishes the foundation for preserving guest_memfd
>> instances across live updates, and can be expanded in the future to
>> preserve additional VM state.
>
> Uh, why guest_memfd?  As much as I want to push guest_memfd adoption, it seems
> guest_memfd should be the _last_ thing we support, not the first.  As evidenced
> by the last two decades, it's very doable to have KVM VMs without guest_memfd,
> but it's rather hard to have VMs without vCPUs.

You _can_ preserve vCPUs today using KVM_{GET,SET}_REGS, they just won't
run in the background during the reboot. This series can save you from
dumping VM memory to disk if it is backed by guest_memfd.

>
>> Also updates MAINTAINERS to include virt/kvm/kvm_luo.c and
>> include/linux/kho/abi/kvm.h.
>> 
>> Signed-off-by: Tarun Sahu <tarunsahu@google.com>
>> ---
>>  MAINTAINERS                 |  11 ++
>>  include/linux/kho/abi/kvm.h |  39 ++++++++
>>  virt/kvm/Makefile.kvm       |   1 +
>>  virt/kvm/kvm_luo.c          | 195 ++++++++++++++++++++++++++++++++++++
>>  virt/kvm/kvm_main.c         |   8 ++
>>  virt/kvm/kvm_mm.h           |   8 ++
>>  6 files changed, 262 insertions(+)
>>  create mode 100644 include/linux/kho/abi/kvm.h
>>  create mode 100644 virt/kvm/kvm_luo.c
>> 
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index a3ed337e827d..0283f0fd6ef4 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -14539,6 +14539,17 @@ S:	Maintained
>>  F:	Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.yaml
>>  F:	drivers/video/backlight/ktz8866.c
>>  
>> +KVM LIVE UPDATE
>> +M:	Pasha Tatashin <pasha.tatashin@soleen.com>
>> +M:	Mike Rapoport <rppt@kernel.org>
>> +M:	Pratyush Yadav <pratyush@kernel.org>
>> +R:	Tarun Sahu <tarunsahu@google.com>
>> +L:	kexec@lists.infradead.org
>> +L:	kvm@vger.kernel.org
>> +S:	Maintained
>> +T:	git git://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux.git
>
> NAK on taking changes through a different tree.  This is KVM code, period.
>
> In general, I'm skeptical of the dedicated MAINTAINERS entry.  It's extremely
> difficult to tell since this series is little more than a skeleton (either that
> or liveupdate is way simpler that I was expecting), but I suspect that maintaining

It's a bit of both. This series of course doesn't support everything
that guest_memfd can. At the same time, I also keep being (pleasantly)
surprised at preservation being relatively simple. For example, the code
to preserve a shmem file (via memfd) is roughly 600 lines, a big chunk
of which is comments. The code of course has some limitations, but it is
good enough for use in production.

> liveupdate for KVM (or for any subsystem) will require more subsystem-specific
> knowledge than liveupdate knowledge.
>
> E.g. the LUO APIs seem pretty straightforward; I assume the bulk of the complexity
> is going to be in knowing what to save/restore, and how, which is much more about
> KVM than it is about liveupdate.

I think it is fine if you want to take these changes through the KVM
tree, but I would like live update maintainers to be listed as reviewers
at least.

For one, we care about ABI breakages and versioning. The serialized
state is a part of live update ABI and changes to it should be ACKed by
us. For another, how the file handlers interact with their dependencies
can affect the behaviour that VMMs observe. Those changes should also
pass by some live update eyes.

So I think we should have a separate entry for KVM LIVE UPDATE that
lists the live update maintainers (or perhaps only kexec@) as a
reviewer. The patches can still flow through KVM tree but we'd get a
chance to ACK/NACK them.

Of course this all can evolve later as we see fit but I think this is a
good starting point.

>
>> +F:	virt/kvm/kvm_luo.c
>> +
>>  KVM PARAVIRT (KVM/paravirt)
>>  M:	Paolo Bonzini <pbonzini@redhat.com>
>>  R:	Vitaly Kuznetsov <vkuznets@redhat.com>
[...]

-- 
Regards,
Pratyush Yadav


  reply	other threads:[~2026-08-11 11:31 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-28 12:11 [PATCH v4 00/11] liveupdate: kvm: Guest_memfd preservation Tarun Sahu
2026-07-28 12:11 ` [PATCH v4 01/11] liveupdate: Add LIVEUPDATE_GUEST_MEMFD config option Tarun Sahu
2026-07-28 12:22   ` sashiko-bot
2026-07-30 18:06     ` Ackerley Tng
2026-08-10 10:13       ` tarunsahu
2026-08-10 22:58   ` Sean Christopherson
2026-08-11 13:26     ` tarunsahu
2026-08-11 14:48       ` Sean Christopherson
2026-07-28 12:11 ` [PATCH v4 02/11] KVM: Introduce kvm_create_vm_file() helper Tarun Sahu
2026-07-30 17:36   ` Ackerley Tng
2026-08-10 10:14     ` tarunsahu
2026-08-10 23:05   ` Sean Christopherson
2026-08-11 13:27     ` tarunsahu
2026-07-28 12:11 ` [PATCH v4 03/11] KVM: Export kvm_uevent_notify_vm_create() Tarun Sahu
2026-07-28 12:26   ` sashiko-bot
2026-07-30 17:43     ` Ackerley Tng
2026-08-06  1:14       ` Sean Christopherson
2026-08-10 12:55       ` tarunsahu
2026-07-28 12:11 ` [PATCH v4 04/11] KVM: Track weak reference to vm_file in struct kvm Tarun Sahu
2026-08-10 23:23   ` Sean Christopherson
2026-07-28 12:11 ` [PATCH v4 05/11] KVM: LUO: Support VM preservation across live updates Tarun Sahu
2026-07-28 12:27   ` sashiko-bot
2026-08-10 23:42   ` Sean Christopherson
2026-08-11 11:31     ` Pratyush Yadav [this message]
2026-08-11 14:05       ` Sean Christopherson
2026-07-28 12:11 ` [PATCH v4 06/11] KVM: guest_memfd: Move internal definitions to internal header Tarun Sahu
2026-07-30 18:12   ` Ackerley Tng
2026-08-11 10:31     ` Pratyush Yadav
2026-07-28 12:11 ` [PATCH v4 07/11] KVM: guest_memfd: Add support for freezing mappings Tarun Sahu
2026-07-28 12:20   ` sashiko-bot
2026-07-30 17:46   ` Ackerley Tng
2026-08-10 13:15     ` tarunsahu
2026-07-30 18:12   ` Ackerley Tng
2026-08-10 13:08     ` tarunsahu
2026-08-10 23:44   ` Sean Christopherson
2026-07-28 12:11 ` [PATCH v4 08/11] KVM: guest_memfd: Add support for preservation via LUO Tarun Sahu
2026-07-28 12:23   ` sashiko-bot
2026-07-30 18:16   ` Ackerley Tng
2026-08-10 13:20     ` tarunsahu
2026-07-28 12:11 ` [PATCH v4 09/11] docs: liveupdate: Add documentation for VM and guest_memfd preservation Tarun Sahu
2026-07-28 12:21   ` sashiko-bot
2026-08-10 13:21     ` tarunsahu
2026-07-28 12:11 ` [PATCH v4 10/11] KVM: selftests: Split ____vm_create() and add vm_create_from_fd() Tarun Sahu
2026-07-28 12:11 ` [PATCH v4 11/11] KVM: selftests: Add guest_memfd_preservation_test Tarun Sahu
2026-07-30 18:18   ` Ackerley Tng
2026-08-10 13:22     ` tarunsahu
2026-08-11 10:06     ` Pratyush Yadav

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=2vxzpkzo51wg.fsf@kernel.org \
    --to=pratyush@kernel.org \
    --cc=ackerleytng@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexandru.elisei@arm.com \
    --cc=andre.przywara@arm.com \
    --cc=aneesh.kumar@kernel.org \
    --cc=corbet@lwn.net \
    --cc=david@kernel.org \
    --cc=david@redhat.com \
    --cc=dmatlack@google.com \
    --cc=fuad.tabba@linux.dev \
    --cc=fvdl@google.com \
    --cc=graf@amazon.com \
    --cc=kexec@lists.infradead.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=maz@kernel.org \
    --cc=michael.roth@amd.com \
    --cc=oliver.upton@linux.dev \
    --cc=pasha.tatashin@soleen.com \
    --cc=pbonzini@redhat.com \
    --cc=rppt@kernel.org \
    --cc=sagis@google.com \
    --cc=seanjc@google.com \
    --cc=skhan@linuxfoundation.org \
    --cc=skhawaja@google.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tarunsahu@google.com \
    --cc=vannapurve@google.com \
    --cc=will@kernel.org \
    --cc=yan.y.zhao@intel.com \
    /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.