[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 0/10] add failover feature for assigned network devices
From: |
Alex Williamson |
Subject: |
Re: [PATCH v3 0/10] add failover feature for assigned network devices |
Date: |
Thu, 17 Oct 2019 06:51:54 -0600 |
On Thu, 17 Oct 2019 12:33:47 +0200
Jens Freimann <address@hidden> wrote:
> On Tue, Oct 15, 2019 at 01:03:17PM -0600, Alex Williamson wrote:
> >On Fri, 11 Oct 2019 13:20:05 +0200
> >Jens Freimann <address@hidden> wrote:
> >
> >> This is implementing the host side of the net_failover concept
> >> (https://www.kernel.org/doc/html/latest/networking/net_failover.html)
> >>
> >> Changes since v2:
> >> * back out of creating failover pair when it is a non-networking
> >> vfio-pci device (Alex W)
> >> * handle migration state change from within the migration thread. I do a
> >> timed wait on a semaphore and then check if all unplugs were
> >> succesful. Added a new function to each device that checks the device
> >> if the unplug for it has happened. When all devices report the succesful
> >> unplug *or* the time/retries is up, continue with the migration or
> >> cancel. When not all devices could be unplugged I am cancelling at the
> >> moment. It is likely that we can't plug it back at the destination which
> >> would result in degraded network performance.
> >> * fix a few bugs regarding re-plug on migration source and target
> >> * run full set of tests including migration tests
> >> * add patch for libqos to tolerate new migration state
> >> * squashed patch 1 and 2, added patch 8
> >>
> >> 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 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 3 sets the pending_deleted_event before triggering the guest
> >> unplug request
> >
> >These only cover pcie hotplug, is this feature somehow dependent on
> >pcie? There's also ACPI-based PCI hotplug, SHPC hotplug, and it looks
> >like s390 has it's own version (of course) of PCI hotplug. IMO, we
> >either need to make an attempt to support this universally or the
> >option needs to fail if the hotplug controller doesn't support partial
> >removal. Thanks,
>
> It is possible to make it work with non-pcie hotplug but as the first
> step I want to enable it for pcie only. For that I would add a check
> into pci_qdev_realize(), where I also check if the device is an
> ethernet device, and fail if it is not a pcie device. Would that work
> for you?
How would libvirt introspect what topologies are supported rather than
trial and error? I think this solves my issue that I get bugs that the
failover pair option doesn't work on vfio-pci depending on the
topology, but it really just pushes the problem up the stack. Thanks,
Alex
- Re: [PATCH v3 10/10] vfio: unplug failover primary device before migration, (continued)
Re: [PATCH v3 0/10] add failover feature for assigned network devices, Michael S. Tsirkin, 2019/10/11
Re: [PATCH v3 0/10] add failover feature for assigned network devices, no-reply, 2019/10/11
Re: [PATCH v3 0/10] add failover feature for assigned network devices, Alex Williamson, 2019/10/15