[Bug 1570631] Re: With hw:vif_multiqueue_enabled, libvirt driver fails with VM larger than 8 vCPU

Saverio Proto 1570631 at bugs.launchpad.net
Fri Nov 25 15:34:19 UTC 2016


The patch does not solve the problem for me.

nova has to check the qemu version in addition to the kernel version and
set its limit accordingly

In the version I am using of qemu (Ubuntu Liberty UCA) I have:

VIRTIO_PCI_QUEUE_MAX == 64

This leads to 31 max queues: (VIRTIO_PCI_QUEUE_MAX - 1) / 2

It is not just the Kernel version

Please read also bug #1644839

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/1570631

Title:
  With hw:vif_multiqueue_enabled, libvirt driver fails with VM larger
  than 8 vCPU

Status in OpenStack Compute (nova):
  Fix Released
Status in nova package in Ubuntu:
  Fix Released

Bug description:
  Nova version: 2:12.0.0-ubuntu2~cloud0
  Release: Liberty
  Compute node kernel: 3.19.0-47-generic
  Hypervisor: Libvirt+KVM
  libvirtd version: 1.2.16
  Neutron network (Linuxbridge Agent)

  
  When attempting to instantiate an VM based on an image with the metadata hw:vif_multiqueue_enabled=true, creation will fail if the flavor has >8 cores assigned.  If the flavor specifies 8 or fewer vCPUs, creation is successful.  

  From /var/log/libvirt/libvirtd.log:

  2016-04-14 21:19:08.161+0000: 3651: error : virNetDevTapCreate:290 :
  Unable to create tap device tap11db5bd0-3a: Argument list too long

  This is the error throw when attempting to create the VM.

  I believe the reason is that in kernels prior to 4.0, the number of
  queues on a tap interface was limited to 8.

  Based on http://lxr.free-
  electrons.com/source/drivers/net/tun.c?v=3.19#L129, MAX_TAP_QUEUES
  resolves to 8 prior to kernel 4.0.

  In the libvirt vif driver (nova/virt/libvirt/vif.py), in
  __get_virtio_mq_settings, this limit is not respected when setting
  vhost_queues = flavor.cpus.  So when the domain XML is written for the
  guest, vhost_queues is used in the 'queues' argument in the driver.
  When this value is >8, it fails when attempting to create the tap
  interface.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1570631/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list