Re: [RFC PATCH 0/3] liveupdate: Move to feature flags for LUO and memfd ABI compatibility
From: Paolo Bonzini
Date: Fri Sep 11 2026 - 13:24:25 EST
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 ofIt'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.
topics. It is a further reason why this feature is not exactly usable
by a "mainstream" user :\
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