On Thu, Aug 01, 2024 at 01:51:00AM -0400, Michael S. Tsirkin wrote: > On Wed, Jul 31, 2024 at 08:57:52AM -0400, Peter Xu wrote: > > Could you elaborate why it would fail if with what I proposed? > > First I think I was wrong I misunderstood what you said. > To summarise, you said: > > - any new feature depending on another package is off by default > - starting qemu on destination with feature enabled will fail > thus migration is not started > > > My comment is that this "started" is from qemu point of view, > from user's POV starting qemu on destination is just the 1st > step of migration. > > > However I agree, this is better since we do not waste bandwidth, > and I was wrong to say we do. > > My other comment is that adding features becomes even more work > than it is now. > > So I suggest a single command that dumps some description of host > features, to be passed to qemu on destination. qemu then fails to > start on destination if some of these do not work. > The advantage is that this also helps things like -cpu host, > and a bunch of other things like vdpa where we like to pass through > config from kernel. > > The disadvantage is that it does not exactly *fix* migration, > it just does not let you start it.
This feels like only half a solution, and not the most helpful half. It prevents you accidentally migrating to a host that lacks some features, but doesn't help with starting a VM that has migrate compatible features in the first place. >From a user POV, the latter is what's most important. Checking for incompatible features is just a safety net that you should never need to hit, if QEMU was configured suitably to start with. So to ensure a QEMU is started with migration compatible features will still require teaching libvirt about every single feature that has a host kernel dependancy, so libvirt (or the app using libvirt) knows to turn this off. This is alot more work for both libvirt & the mgmt app, than having QEMU provide the generic "platforms" concept which is extensible without needing further work outside QEMU. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|