|
From: | Paolo Bonzini |
Subject: | Re: [PATCH] vfio/migrate: Move switch of dirty tracking into vfio_memory_listener |
Date: | Wed, 27 Jan 2021 13:46:31 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
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); +} + +static void vfio_listener_log_stop(MemoryListener *listener, + MemoryRegionSection *section, + int old, int new) +{ + VFIOContainer *container = container_of(listener, VFIOContainer, listener); + + vfio_set_dirty_page_tracking(container, false); +} +
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.
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; }before the calls to vfio_set_dirty_page_tracking. But I think it's more appropriate for VFIO to use log_global_*.
Thanks, Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |