[libvirt] Libvirt multi queue support

Hello experts, Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it? Thanks, Naor

On 21.08.2013 07:31, Naor Shlomo wrote:
Hello experts,
Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it?
Do you mean multiqueue network? It's supported from 1.0.6. You can set it in /domain/devices/interface/driver/@queues attribute: http://libvirt.org/formatdomain.html#elementsDriverBackendOptions Michal

Hi Michal First of all thanks for your reply. I followed your advice and the guideline you sent and did the following: <interface type='bridge'> <mac address='52:54:00:43:6e:3f'/> <source bridge='clients'/> <model type='virtio'/> <driver name='vhost' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface> virsh version reports the following: Compiled against library: libvirt 1.1.1 Using library: libvirt 1.1.1 Using API: QEMU 1.1.1 Running hypervisor: QEMU 1.5.2 When I tried starting the machine I received the following: error: Failed to start domain NaorDev error: unsupported configuration: Multiqueue devices are not supported on this system Could you please tell what am I missing? Thanks, Naor -----Original Message----- From: Michal Privoznik [mailto:mprivozn@redhat.com] Sent: Wednesday, August 21, 2013 2:51 PM To: Naor Shlomo Cc: libvir-list@redhat.com Subject: Re: [libvirt] Libvirt multi queue support On 21.08.2013 07:31, Naor Shlomo wrote:
Hello experts,
Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it?
Do you mean multiqueue network? It's supported from 1.0.6. You can set it in /domain/devices/interface/driver/@queues attribute: http://libvirt.org/formatdomain.html#elementsDriverBackendOptions Michal

On 29.08.2013 08:07, Naor Shlomo wrote:
Hi Michal
First of all thanks for your reply.
I followed your advice and the guideline you sent and did the following:
<interface type='bridge'> <mac address='52:54:00:43:6e:3f'/> <source bridge='clients'/> <model type='virtio'/> <driver name='vhost' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface>
virsh version reports the following:
Compiled against library: libvirt 1.1.1 Using library: libvirt 1.1.1 Using API: QEMU 1.1.1 Running hypervisor: QEMU 1.5.2
When I tried starting the machine I received the following:
error: Failed to start domain NaorDev error: unsupported configuration: Multiqueue devices are not supported on this system
Could you please tell what am I missing?
Thanks, Naor
Your kernel does not support MQ yet. You need to update the kernel. The support can be checked by executing: grep IFF_MULTI_QUEUE /usr/include/linux/if_tun.h (so maybe you'll need to update the linux-headers package as well). Anyway, the MQ support has been introduced to kernel in the 3.8 release (even though the docs were introduced in 3.9). Michal

How odd. The Kernel is the first thing I upgraded, here's the output of "uname -r": 3.10.9 I searched for IFF_MULTI_QUEUE in /usr/include/linux/if_tun.h and indeed it wasn't there. I believe Kernel 3.10 should support the Multi Queue, do I need to recompile it? maybe change its config file? -----Original Message----- From: Michal Privoznik [mailto:mprivozn@redhat.com] Sent: Thursday, August 29, 2013 9:28 AM To: Naor Shlomo Cc: libvir-list@redhat.com Subject: Re: [libvirt] Libvirt multi queue support On 29.08.2013 08:07, Naor Shlomo wrote:
Hi Michal
First of all thanks for your reply.
I followed your advice and the guideline you sent and did the following:
<interface type='bridge'> <mac address='52:54:00:43:6e:3f'/> <source bridge='clients'/> <model type='virtio'/> <driver name='vhost' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface>
virsh version reports the following:
Compiled against library: libvirt 1.1.1 Using library: libvirt 1.1.1 Using API: QEMU 1.1.1 Running hypervisor: QEMU 1.5.2
When I tried starting the machine I received the following:
error: Failed to start domain NaorDev error: unsupported configuration: Multiqueue devices are not supported on this system
Could you please tell what am I missing?
Thanks, Naor
Your kernel does not support MQ yet. You need to update the kernel. The support can be checked by executing: grep IFF_MULTI_QUEUE /usr/include/linux/if_tun.h (so maybe you'll need to update the linux-headers package as well). Anyway, the MQ support has been introduced to kernel in the 3.8 release (even though the docs were introduced in 3.9). Michal

On 29.08.2013 08:55, Naor Shlomo wrote:
How odd.
The Kernel is the first thing I upgraded, here's the output of "uname -r": 3.10.9
I searched for IFF_MULTI_QUEUE in /usr/include/linux/if_tun.h and indeed it wasn't there. I believe Kernel 3.10 should support the Multi Queue, do I need to recompile it? maybe change its config file?
You shouldn't need to enable anything in the .config. However, you may need to update the linux-headers if you're building the libvirt on your own. There's a build-time check for IFF_MULTI_QUEUE. Michal

Hi Michal First of all I want to let you know that I really appreciate your guidance. Second thing, after I successfully installed the kernel headers I was able to compile libvirt again, this time it let me start the Guest with queues='5' The Guest runs Kernel 3.9.7 but for some reason virtio_has_feature(vdev, VIRTIO_NET_F_MQ) returns false for multi queue. Could you please tell me what am I missing? Thanks, Naor -----Original Message----- From: Michal Privoznik [mailto:mprivozn@redhat.com] Sent: Thursday, August 29, 2013 10:13 AM To: Naor Shlomo Cc: libvir-list@redhat.com Subject: Re: [libvirt] Libvirt multi queue support On 29.08.2013 08:55, Naor Shlomo wrote:
How odd.
The Kernel is the first thing I upgraded, here's the output of "uname -r": 3.10.9
I searched for IFF_MULTI_QUEUE in /usr/include/linux/if_tun.h and indeed it wasn't there. I believe Kernel 3.10 should support the Multi Queue, do I need to recompile it? maybe change its config file?
You shouldn't need to enable anything in the .config. However, you may need to update the linux-headers if you're building the libvirt on your own. There's a build-time check for IFF_MULTI_QUEUE. Michal

On 03.09.2013 06:42, Naor Shlomo wrote:
Hi Michal
First of all I want to let you know that I really appreciate your guidance. Second thing, after I successfully installed the kernel headers I was able to compile libvirt again, this time it let me start the Guest with queues='5' The Guest runs Kernel 3.9.7 but for some reason virtio_has_feature(vdev, VIRTIO_NET_F_MQ) returns false for multi queue.
Could you please tell me what am I missing?
Unfortunately no, I am not that familiar with KVM internals to give any useful answer. But maybe you can ask on the qemu list. Michal

Michal Privoznik <mprivozn <at> redhat.com> writes:
On 21.08.2013 07:31, Naor Shlomo wrote:
Hello experts,
Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it?
Do you mean multiqueue network? It's supported from 1.0.6. You can set it in /domain/devices/interface/driver/ <at> queues attribute:
http://libvirt.org/formatdomain.html#elementsDriverBackendOptions
Michal
hi. I have a centos7 physical host.and I had install a centos6 virtualhost ,I did a Multi-Queue virtio-net on my centos6 virtualhost ,but it was not success. dit centos6 virtualhost support Multi-Queue? please send my email as soon as possible. thao��̄(

On 12.06.2016 09:32, Erick.shi wrote:
Michal Privoznik <mprivozn <at> redhat.com> writes:
On 21.08.2013 07:31, Naor Shlomo wrote:
Hello experts,
Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it?
Do you mean multiqueue network? It's supported from 1.0.6. You can set it in /domain/devices/interface/driver/ <at> queues attribute:
http://libvirt.org/formatdomain.html#elementsDriverBackendOptions
Michal
hi. I have a centos7 physical host.and I had install a centos6 virtualhost ,I did a Multi-Queue virtio-net on my centos6 virtualhost ,but it was not success. dit centos6 virtualhost support Multi-Queue?
Unfortunately, you don't say what went wrong, what error message are you seeing. I guess sufficiently new CentOS 6 guest could support MQ, but that's just my guess. Michal
participants (3)
-
Erick.shi
-
Michal Privoznik
-
Naor Shlomo