On Sun, Jul 21, 2019 at 05:18:01AM +0530, Sukrit Bhatnagar wrote:
> In v2, we had successful migration of PCI and MSIX states as well as
> various DMA addresses and ring page information.
> This series enables the migration of various GIDs used by the device.
>
> We have switched to a setup having two hosts and two VMs running atop them.
> Migrations are now performed over the local network. This has settled the
> same-host issue with libvirt.
>
> We also have performed various ping-pong tests (ibv_rc_pingpong) in the
> guest(s) after adding GID migration support and this is the current status:
> - ping-pong to localhost succeeds, when performed before starting the
> migration and after the completion of migration.
> - ping-pong to a peer succeeds, both before and after migration as above,
> provided that both VMs are running on/migrated to the same host.
> So, if two VMs were started on two different hosts, and one of them
> was migrated to the other host, the ping-pong was successful.
> Similarly, if two VMs are migrated to the same host, then after migration,
> the ping-pong was successful.
> - ping-pong to a peer on the remote host is not working as of now.
>
> Our next goal is to achieve successful migration with live traffic.
As this is a major milestone which enable live migration (still when there
are no QPs), i believe we are ok for a patch.
Yuval
>
> This series can be also found at:
> https://github.com/skrtbhtngr/qemu/tree/gsoc19
>
>
> History:
>
> v2 -> v3:
> - remove struct PVRDMAMigTmp and VMSTATE_WITH_TMP
> - use predefined PVRDMA_HW_NAME for the vmsd name
> - add vmsd for gids and a gid table field in pvrdma_state
> - perform gid registration in pvrdma_post_load
> - define pvrdma_post_save to unregister gids in the source host
>
> v1 -> v2:
> - modify load_dsr() to make it idempotent
> - switch to VMStateDescription
> - add fields for PCI and MSIX state
> - define a temporary struct PVRDMAMigTmp to use WITH_TMP macro
> - perform mappings to CQ and event notification rings at load
> - vmxnet3 issue solved by Marcel's patch
> - BounceBuffer issue solved automatically by switching to VMStateDescription
>
>
> Link(s) to v2:
> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg01848.html
> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg01849.html
> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg01850.html
>
> Link(s) to v1:
> https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg04924.html
> https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg04923.html
>
> Sukrit Bhatnagar (2):
> hw/pvrdma: make DSR mapping idempotent in load_dsr()
> hw/pvrdma: add live migration support
>
> hw/rdma/vmw/pvrdma_main.c | 94 +++
> 1 file changed, 86 insertions(+), 8 deletions(-)
>
> --
> 2.21.0
>