|
From: | Paolo Bonzini |
Subject: | Re: [PATCH] vfio/migrate: Move switch of dirty tracking into vfio_memory_listener |
Date: | Fri, 29 Jan 2021 08:49:53 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
On 28/01/21 21:02, Dr. David Alan Gilbert wrote:
* Paolo Bonzini (pbonzini@redhat.com) wrote:On 11/01/21 08:34, Keqian Zhu wrote:+static void vfio_listener_log_start(MemoryListener *listener, + MemoryRegionSection *section, + int old, int new) +{ + VFIOContainer *container = container_of(listener, VFIOContainer, listener); + + vfio_set_dirty_page_tracking(container, true); +}This would enable dirty page tracking also just for having a framebuffer (DIRTY_MEMORY_VGA). Technically it would be correct, but it would also be more heavyweight than expected.Wouldn't that only happen on emulated video devices?
Yes, but still it's not impossible to have both an emulated VGA and an assigned GPU or vGPU.
In order to only cover live migration, you can use the log_global_start and log_global_stop callbacks instead. If you want to use log_start and log_stop, you need to add respectively if (old != 0) { return; } and if (new != 0) { return; }Why 0, wouldn't you be checking for DIRTY_LOG_MIGRATION somewhere?
Actually thinking more about it log_start/log_stop are just wrong, because they would be called many times, for each MemoryRegionSection.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |