Hi Jens,
> -----Original Message----- > From: Jens Freimann <jfreim...@redhat.com> > Sent: Tuesday, October 29, 2019 6:49 AM > To: qemu-devel@nongnu.org > Cc: ehabk...@redhat.com; m...@redhat.com; berra...@redhat.com; > la...@redhat.com; aa...@redhat.com; ai...@redhat.com; Parav Pandit > <pa...@mellanox.com>; dgilb...@redhat.com; alex.william...@redhat.com; > arm...@redhat.com; ebl...@redhat.com; jasow...@redhat.com; > quint...@redhat.com; pbonz...@redhat.com > Subject: [PATCH v7 0/11] add failover feature for assigned network devices > > This is implementing the host side of the net_failover concept > (https://www.kernel.org/doc/html/latest/networking/net_failover.html) > > Changes since v6: > * reword patch description of 06/11 (Markus) > * have qemu_savevm_state_guest_unplug_pending() return true when at > least one device is still not unplugged (Dave) > > The general idea is that we have a pair of devices, a vfio-pci and a > virtio-net > device. Before migration the vfio device is unplugged and data flows to the > virtio-net device, on the target side another vfio-pci device is plugged in > to take > over the data-path. In the guest the net_failover module will pair net devices > with the same MAC address. > > * Patch 1 adds the infrastructure to hide the device for the qbus and qdev > APIs > > * Patch 2 adds checks to PCIDevice for only allowing ethernet devices as > failover primary and only PCIExpress capable devices > > * Patch 3 sets a new flag for PCIDevice 'partially_hotplugged' which we > use to skip the unrealize code path when doing a unplug of the primary > device > > * Patch 4 sets the pending_deleted_event before triggering the guest > unplug request > > * Patch 5 and 6 add new qmp events, one sends the device id of a device > that was just requested to be unplugged from the guest and another one > to let libvirt know if VIRTIO_NET_F_STANDBY was negotiated > > * Patch 7 make sure that we can unplug the vfio-device before > migration starts > > * Patch 8 adds a new migration state that is entered while we wait for > devices to be unplugged by guest OS > > * Patch 9 just adds the new migration state to a check in libqos code > > * Patch 10 In the second patch the virtio-net uses the API to defer adding the > vfio > device until the VIRTIO_NET_F_STANDBY feature is acked. It also > implements the migration handler to unplug the device from the guest and > re-plug in case of migration failure > > * Patch 11 allows migration for failover vfio-pci devices > Patches are great to see failover capability enabled on the netdevice. However it's very difficult to test it without having libvirt support. Can we please have the necessary libvirt enhancements? I will be able to test it with Mellanox ConnectX5 device + qemu + libvirt. [..]