[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 02/11] pci: add option for net failover
From: |
Alex Williamson |
Subject: |
Re: [PATCH 02/11] pci: add option for net failover |
Date: |
Mon, 21 Oct 2019 14:48:21 -0600 |
On Mon, 21 Oct 2019 22:28:57 +0200
Jens Freimann <address@hidden> wrote:
> On Mon, Oct 21, 2019 at 01:01:22PM -0600, Alex Williamson wrote:
> >On Mon, 21 Oct 2019 20:45:46 +0200
> >Jens Freimann <address@hidden> wrote:
> >
> >> On Mon, Oct 21, 2019 at 08:58:23AM -0600, Alex Williamson wrote:
> >> >On Fri, 18 Oct 2019 22:20:31 +0200
> >> >Jens Freimann <address@hidden> wrote:
> >> >
> >> >> This patch adds a net_failover_pair_id property to PCIDev which is
> >> >> used to link the primary device in a failover pair (the PCI dev) to
> >> >> a standby (a virtio-net-pci) device.
> >> >>
> >> >> It only supports ethernet devices. Also currently it only supports
> >> >> PCIe devices. QEMU will exit with an error message otherwise.
> >> >
> >> >Doesn't the PCIe device also need to be hotpluggable? We can have PCIe
> >> >devices attached to the root bus where we don't currently support
> >> >hotplug. Thanks,
> >>
> >> How do I recognize such a device? hotpluggable in DeviceClass?
> >
> >I wouldn't expect it to be a device property, it's more of a function
> >of whether the bus that it's attached to supports hotplug, so probably
> >something related to the bus controller. Thanks,
>
> IIUC this is checked for in qdev_device_add() by this:
>
> if (qdev_hotplug && bus && !qbus_is_hotpluggable(bus)) {
> error_setg(errp, QERR_BUS_NO_HOTPLUG, bus->name);
> return NULL;
> }
>
> So qemu will fail with 'Bus pcie.0 does not allow hotplug' when we try
> to hotplug the device. I tried a primary with bus=pcie.0 and it aborted.
> Aborting qemu is not nice so I'll make it print a error message
> QERR_BUS_NO_HOTPLUG instead but let it continue. This will be
> a change in the virtio-net patch, not in this one.
qdev_hotplug is only set to true after qdev_machine_creation_done(), so
if we start a VM with cold-plugged primary and failover, wouldn't the
user only learn the configuration is invalid at the time they try to
use it? I agree that the above should prevent a device from being
hot-added to the bus, but I don't think that's our starting position,
is it? Thanks,
Alex
- [PATCH 01/11] qdev/qbus: add hidden device support, (continued)
[PATCH 03/11] pci: mark devices partially unplugged, Jens Freimann, 2019/10/18
[PATCH 04/11] pci: mark device having guest unplug request pending, Jens Freimann, 2019/10/18
[PATCH 05/11] qapi: add unplug primary event, Jens Freimann, 2019/10/18
[PATCH 06/11] qapi: add failover negotiated event, Jens Freimann, 2019/10/18
[PATCH 07/11] migration: allow unplug during migration for failover devices, Jens Freimann, 2019/10/18
[PATCH 08/11] migration: add new migration state wait-unplug, Jens Freimann, 2019/10/18
[PATCH 09/11] libqos: tolerate wait-unplug migration state, Jens Freimann, 2019/10/18
[PATCH 10/11] net/virtio: add failover support, Jens Freimann, 2019/10/18