qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 02/11] pci: add option for net failover


From: Jens Freimann
Subject: Re: [PATCH v5 02/11] pci: add option for net failover
Date: Fri, 25 Oct 2019 12:52:32 +0200
User-agent: NeoMutt/20180716-1376-5d6ed1

On Wed, Oct 23, 2019 at 12:06:48PM -0600, Alex Williamson wrote:
On Wed, 23 Oct 2019 10:27:02 +0200
Jens Freimann <address@hidden> wrote:
[...]
@@ -2101,6 +2104,20 @@ static void pci_qdev_realize(DeviceState *qdev, Error 
**errp)
         }
     }

+    if (pci_dev->net_failover_pair_id) {
+        if (!pci_is_express(pci_dev)) {
+            error_setg(errp, "failover device is not a PCIExpress device");
+            error_propagate(errp, local_err);
+            return;
+        }

Did we decide we don't need to test that the device is also in a
hotpluggable slot?  Are there also multi-function considerations that
should be prevented or documented?  For example, if a user tries to
configure both the primary and failover NICs in the same slot, I assume
bad things will happen.

I added this check

       if (!(pci_dev->cap_present & QEMU_PCI_CAP_MULTIFUNCTION)
           && (PCI_FUNC(pci_dev->devfn) == 0)) {
           qdev->allow_unplug_during_migration = true;
       } else {
           error_setg(errp, "failover: primary device must be in its own "
                             "PCI slot");
           error_propagate(errp, local_err);
           pci_qdev_unrealize(DEVICE(pci_dev), NULL);
           return;
       }

When I first add a vfio-pci with net_failover_pair_id=x,multifunction=on
and addr=0.0 I will now get an error.

(qemu) device_add 
vfio-pci,...,bus=root2,net_failover_pair_id=net1,multifunction=on,addr=0.0
Error: failover: primary device must be in its own PCI slot

If I put in a virtio-net device in slot 0 and then try to add a
vfio-pci device in the same slot I get the following error message:

-device virtio-net-pci,...id=net1bus=root1,failover=on,multifunction=on,addr=0.0
(qemu) device_add 
vfio-pci,id=hostdev1,host=0000:5e:00.2,bus=root1,net_failover_pair_id=net1,addr=0.1
Error: PCI: slot 0 function 0 already ocuppied by virtio-net-pci,
  new func vfio-pci cannot be exposed to guest.


regards,
Jens




reply via email to

[Prev in Thread] Current Thread [Next in Thread]