From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> This set enables postcopy migration with shared memory to a vhost user process. It's based off current head.
Testing is mostly performed with dpdk, with corresponding modifications by Maxime. v6 is a rebase on top of Michael's PCI world; this took some merging because of Jay Zhou's 'vhost: used_memslots refactoring', which needed a bit of a change to 'vhost+postcopy: Stash RAMBlock and offset' (which I dropped the Review-by off) and 'postcopy+vhost-user: Split set_mem_table for postcopy' (which I kept it, since the change is mostly contextual). And I removed a blank line at the end of a patch. Dave Dr. David Alan Gilbert (29): migrate: Update ram_block_discard_range for shared qemu_ram_block_host_offset postcopy: use UFFDIO_ZEROPAGE only when available postcopy: Add notifier chain postcopy: Add vhost-user flag for postcopy and check it vhost-user: Add 'VHOST_USER_POSTCOPY_ADVISE' message libvhost-user: Support sending fds back to qemu libvhost-user: Open userfaultfd postcopy: Allow registering of fd handler vhost+postcopy: Register shared ufd with postcopy vhost+postcopy: Transmit 'listen' to slave postcopy+vhost-user: Split set_mem_table for postcopy migration/ram: ramblock_recv_bitmap_test_byte_offset libvhost-user+postcopy: Register new regions with the ufd vhost+postcopy: Send address back to qemu vhost+postcopy: Stash RAMBlock and offset vhost+postcopy: Helper to send requests to source for shared pages vhost+postcopy: Resolve client address postcopy: helper for waking shared postcopy: postcopy_notify_shared_wake vhost+postcopy: Add vhost waker vhost+postcopy: Call wakeups libvhost-user: mprotect & madvises for postcopy vhost-user: Add VHOST_USER_POSTCOPY_END message vhost+postcopy: Wire up POSTCOPY_END notify vhost: Huge page align and merge postcopy: Allow shared memory libvhost-user: Claim support for postcopy postcopy shared docs contrib/libvhost-user/libvhost-user.c | 302 ++++++++++++++++++++++++- contrib/libvhost-user/libvhost-user.h | 11 + docs/devel/migration.rst | 41 ++++ docs/interop/vhost-user.txt | 52 +++++ exec.c | 86 ++++++-- hw/virtio/trace-events | 16 +- hw/virtio/vhost-user.c | 403 +++++++++++++++++++++++++++++++++- hw/virtio/vhost.c | 66 +++++- include/exec/cpu-common.h | 4 + migration/migration.c | 6 + migration/migration.h | 4 + migration/postcopy-ram.c | 353 +++++++++++++++++++++++------ migration/postcopy-ram.h | 73 ++++++ migration/ram.c | 5 + migration/ram.h | 1 + migration/savevm.c | 13 ++ migration/trace-events | 6 + trace-events | 3 +- vl.c | 2 + 19 files changed, 1351 insertions(+), 96 deletions(-) -- 2.14.3