[RFC PATCH 0/3] liveupdate: Move to feature flags for LUO and memfd ABI compatibility
Paolo Bonzini
pbonzini at redhat.com
Fri Sep 11 10:16:23 PDT 2026
On 9/10/26 19:12, Jason Gunthorpe wrote:
> Keep in mind the actual goal here. Someone has kernel A and they need
> to blind kexec into kernel B and NOT have the machine explode, or all
> the VMs sitting on it lost.
>
> Meaning you must have a way to determine before the kexec if kernel A
> is producing something B will *accept*. Accept is not "parse and fail
> with EOPNOTSUPP" like most uapi schems. Aceept means bring in and
> actually fully support and use.
>
> So how do you solve this problem? You MUST declare in some kind of
> manifest exactly what ABIs are supported, in some way.
You still have to pass out of band what B will accept. Passing a string
or a bitvector doesn't change much.
The problem, again is that memfd is the easy case. KVM would bump the
version number on every other release, as even a new serialized MSR will
be an incompatibility.
Rather, forwards kexec *must* work (again, that's nothing but a variant
of "we don't break userspace") and for backwards kexec, well, you must
know what you're doing. QEMU has been doing backwards live migration
forever, and QEMU is a gnarly C program that has grown by accretion as
we were learning all this stuff, so it's not impossible at all.
> Yeah, CSP broadly has to do exactly this across a wide range of
> topics. It is a further reason why this feature is not exactly usable
> by a "mainstream" user :\
It's not easy, but you aren't even trying to do it right in the kernel.
You are starting from *a* solution and saying that it makes the feature
hard to use.
And I'm not saying to dismiss your work or ability, quite the contrary
in fact! It's just that you're solving for the wrong complexity, and
only partially so because (if I'm not wrong) there's still the question
of how to bring the manifest of kernel B into kernel A.
Paolo
More information about the kexec
mailing list