[libvirt] [PATCH V4 5/6] libxl: fix hot add/remove VF from a pool

Jim Fehlig jfehlig at suse.com
Mon Mar 28 16:11:13 UTC 2016


On 03/21/2016 02:11 AM, Chunyan Liu wrote:
> For those VF allocated from a network pool, we need to set its backend
> to be VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN so that later work can be
> correct.
>
> Signed-off-by: Chunyan Liu <cyliu at suse.com>
> ---
>  src/libxl/libxl_driver.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index 328dac8..d7004fd 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -3145,13 +3145,23 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driver,
>      }
>  
>      if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
> +        virDomainHostdevDefPtr hostdev = virDomainNetGetActualHostdev(net);
> +        virDomainHostdevSubsysPCIPtr pcisrc = &hostdev->source.subsys.u.pci;
> +
> +        /* For those just allocated from a network pool whose backend is
> +         * still VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT, we need to set
> +         * backend correctly.
> +         */
> +        if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
> +            hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
> +            pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
> +
>          /* This is really a "smart hostdev", so it should be attached
>           * as a hostdev (the hostdev code will reach over into the
>           * netdev-specific code as appropriate), then also added to
>           * the nets list (see out:) if successful.
>           */
> -        ret = libxlDomainAttachHostDevice(driver, vm,
> -                                          virDomainNetGetActualHostdev(net));
> +        ret = libxlDomainAttachHostDevice(driver, vm, hostdev);

ACK, will push shortly. I'm still looking at 4/6 and 6/6.

Regards,
Jim




More information about the libvir-list mailing list