qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] vfio/migrate: Move switch of dirty tracking into vfio_memory


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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]