Public bug reported: 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. ** Affects: nova Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). 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): New 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

