On Wed, Feb 27, 2019 at 03:33:11PM +0000, Stefan Hajnoczi wrote: > On Tue, Feb 26, 2019 at 10:54:55AM -0600, Eric Blake wrote: > > On 2/26/19 9:35 AM, Stefan Hajnoczi wrote: > > > Commit dd577a26ff03b6829721b1ffbbf9e7c411b72378 ("block/file-posix: > > > implement bdrv_co_invalidate_cache() on Linux") introduced page cache > > > invalidation so that cache.direct=off live migration is safe on Linux. > > > > > > The invalidation takes a significant amount of time when the file is > > > large and present in the page cache. Normally this is not the case for > > > cross-host live migration but it can happen when migrating between QEMU > > > processes on the same host. > > > > > > On same-host migration we don't need to invalidate pages for correctness > > > anyway, so an option to skip page cache invalidation is useful. I > > > investigated optimizing invalidation and detecting same-host migration, > > > but both are hard to achieve so a user-visible option will suffice. > > > > > > As a bonus this option means that the cache invalidation feature will > > > now be detectable by libvirt via QMP schema introspection. > > > > Do you still want to pursue the QMP query-qemu-features command, or does > > this delay that for another day? > > The presence of this new option doesn't guarantee that dropping caches > works. It is currently only implemented on Linux. > > We still need query-qemu-features so that libvirt can detect whether > this QEMU binary can drop caches (e.g. on Linux vs FreeBSD).
The commit message said that libvirt would use this new option to detect availability of the cache drop feature. That should probably be removed from the commit message, as this caveat about non-portable impl means libvirt can't actually rely on it. 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 :|