[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH v2] file-posix: add drop-cache=on|o
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH v2] file-posix: add drop-cache=on|off option |
Date: |
Wed, 06 Mar 2019 13:50:59 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Stefan Hajnoczi <address@hidden> writes:
> 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 <address@hidden>
>> > Tested-by: Neil Skrypuch <address@hidden>
>> > Reviewed-by: Stefano Garzarella <address@hidden>
>> > Reviewed-by: Eric Blake <address@hidden>
>> > Signed-off-by: Stefan Hajnoczi <address@hidden>
>> > ---
>> > 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?
Silently ignoring user directives is generally a bad idea. Possible
exceptions include directives of a "$frobnicate if you can" kind.