migration: Send requested page directly in rp-return thread
commit93589827443e7fbd68ea39e3d70dc7fb1460bb84
authorPeter Xu <peterx@redhat.com>
Tue, 11 Oct 2022 21:55:57 +0000 (11 17:55 -0400)
committerJuan Quintela <quintela@redhat.com>
Thu, 15 Dec 2022 09:30:37 +0000 (15 10:30 +0100)
tree909a2bb37495c736738170f116351399d700ab2b
parentec6f3ab9f489ecabec2b660887c38b6a95c85e41
migration: Send requested page directly in rp-return thread

With all the facilities ready, send the requested page directly in the
rp-return thread rather than queuing it in the request queue, if and only
if postcopy preempt is enabled.  It can achieve so because it uses separate
channel for sending urgent pages.  The only shared data is bitmap and it's
protected by the bitmap_mutex.

Note that since we're moving the ownership of the urgent channel from the
migration thread to rp thread it also means the rp thread is responsible
for managing the qemufile, e.g. properly close it when pausing migration
happens.  For this, let migration_release_from_dst_file to cover shutdown
of the urgent channel too, renaming it as migration_release_dst_files() to
better show what it does.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c
migration/ram.c