On Fri, Mar 01, 2019 at 10:30:07AM -0600, Eric Blake wrote:
> On 3/1/19 10:09 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.
> >
> > Suggested-by: Neil Skrypuch <[email protected]>
> > Tested-by: Neil Skrypuch <[email protected]>
> > Reviewed-by: Stefano Garzarella <[email protected]>
> > Reviewed-by: Eric Blake <[email protected]>
> > Signed-off-by: Stefan Hajnoczi <[email protected]>
> > ---
> > v2:
> > * Remove outdated comment about libvirt feature detection [danpb]
>
> Question - if we used qapi's 'if':COND to only declare the field on
> platforms where we know at compile time that we can support it, would
> that be enough for libvirt to introspect that if the field exists then
> migration is safe, without having to rely on an query-qemu-features command?Yes, although this raises another question: The drop-cache implementation is not #ifdefed in file-posix.c. If we make the QMP schema conditional, should we also #ifdef the command-line option in raw_runtime_opts[] to prevent QEMU from silently ignoring this option? Stefan
signature.asc
Description: PGP signature
