On Tue, Nov 03, 2020 at 02:52:44PM +0100, Andrew Jones wrote: > On Tue, Nov 03, 2020 at 11:37:27AM +0000, Dave Martin wrote: > > On Mon, Nov 02, 2020 at 07:50:34PM +0100, Andrew Jones wrote: > > > 张东旭 <xu910121@xxxxxxxx> reported a regression seen with CentOS > > > when migrating from an old kernel to a new one. The problem was > > > that QEMU rejected the migration since KVM_GET_REG_LIST reported > > > a register was missing on the destination. Extra registers are OK > > > on the destination, but not missing ones. The regression reproduces > > > with upstream kernels when migrating from a 4.15 or later kernel, > > > up to one with commit 73433762fcae ("KVM: arm64/sve: System register > > > context switch and access support"), to a kernel that includes that > > > commit, e.g. the latest mainline (5.10-rc2). > > > > > > The first patch of this series is the fix. The next two patches, > > > which don't have any intended functional changes, allow ID_SANITISED > > > to be used for registers that flip between exposing features and > > > being RAZ, which allows some code to be removed. > > > > Is it worth updating Documentation/virt/kvm/api.rst to clarify the > > expected use during VM migrations, and the guarantees that are expected > > to hold between migratable kernel versions? Currently the specification > > is a mixture of "surely it's obvious" and "whatever makes QEMU work". > > > > I guess that caught me out, but I'll let others judge whether other > > people are likely to get similarly confused. > > > > I'm not sure what section this would fit in in api.rst. It feels like > this should be a higher level document that covers the migration > guarantees of the API in general. Of course, with host cpu passthrough, > nothing is really guaranteed. The upgrade path is reasonable and probably > doable though. I agree that QEMU is the documentation in practice :P This may be a situation where strategic vagueness is the best policy, since in practice people attempting migration will always rely on more than we can stricly guarantee in the generic API. The generic rule is probably "knock yourself out, YMMV". If there's no clear place to write something up, then I guess we are at least not making things worse. Cheers ---Dave _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm