qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [question] virtio-net-device and multi-queue option
@ 2014-09-19  0:10 Eric Auger
  2014-09-19  1:42 ` Gonglei (Arei)
  0 siblings, 1 reply; 5+ messages in thread
From: Eric Auger @ 2014-09-19  0:10 UTC (permalink / raw)
  To: qemu list, Michael S. Tsirkin

Hi,


I am currently doing some benchmarks using virtio-net-device using
virtio-mmio (non PCI) with qemu_system_arm with KVM. Purpose is to
compare with device passthrough performance.

I heard about the availability of a multi-queue option that greatly
improves the performance but I currently fail in enabling it.

Please could someone explain me how to turn that feature on? My current
virtio-net options simply are:

        -netdev tap,id=tap0,ifname="tap0" \
        -device virtio-net-device,netdev=tap0

Also are there any "easy" tunings I can play with to try to reach the
best performance.

Thank you in advance

Best Regards

Eric

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
  2014-09-19  0:10 [Qemu-devel] [question] virtio-net-device and multi-queue option Eric Auger
@ 2014-09-19  1:42 ` Gonglei (Arei)
  2014-09-19  2:23   ` Eric Auger
  0 siblings, 1 reply; 5+ messages in thread
From: Gonglei (Arei) @ 2014-09-19  1:42 UTC (permalink / raw)
  To: Eric Auger, qemu list, Michael S. Tsirkin

> Subject: [Qemu-devel] [question] virtio-net-device and multi-queue option
> 
> Hi,
> 
> 
> I am currently doing some benchmarks using virtio-net-device using
> virtio-mmio (non PCI) with qemu_system_arm with KVM. Purpose is to
> compare with device passthrough performance.
> 
> I heard about the availability of a multi-queue option that greatly
> improves the performance but I currently fail in enabling it.
> 
> Please could someone explain me how to turn that feature on? My current
> virtio-net options simply are:
> 
>         -netdev tap,id=tap0,ifname="tap0" \
>         -device virtio-net-device,netdev=tap0
> 

There are some steps:

 1. create multi-queue netdev device, such as tap device (you can
   use "ip tuntap" command, or libvirt), something like as below:
    ip tuntap add tap_1 mode tap multi_queue
 2. pass corresponding parameters in QEMU command line:
   -netdev type=tap,ifname=tap_q,id=net1,vhost=on,vhostforce=on,queues=4,script= \
   -device virtio-net-device,netdev=net1,mq=on,vectors=9
 
> Also are there any "easy" tunings I can play with to try to reach the
> best performance.
> 

You can consider that using irq binding, core binding, vhost-net? etc..

Best regards,
-Gonglei

> Thank you in advance
> 
> Best Regards
> 
> Eric

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
  2014-09-19  1:42 ` Gonglei (Arei)
@ 2014-09-19  2:23   ` Eric Auger
  2014-09-19  2:30     ` Gonglei (Arei)
  0 siblings, 1 reply; 5+ messages in thread
From: Eric Auger @ 2014-09-19  2:23 UTC (permalink / raw)
  To: Gonglei (Arei), qemu list, Michael S. Tsirkin

On 09/19/2014 03:42 AM, Gonglei (Arei) wrote:
>> Subject: [Qemu-devel] [question] virtio-net-device and multi-queue option
>>
>> Hi,
>>
>>
>> I am currently doing some benchmarks using virtio-net-device using
>> virtio-mmio (non PCI) with qemu_system_arm with KVM. Purpose is to
>> compare with device passthrough performance.
>>
>> I heard about the availability of a multi-queue option that greatly
>> improves the performance but I currently fail in enabling it.
>>
>> Please could someone explain me how to turn that feature on? My current
>> virtio-net options simply are:
>>
>>         -netdev tap,id=tap0,ifname="tap0" \
>>         -device virtio-net-device,netdev=tap0
>>
> 
> There are some steps:
> 
>  1. create multi-queue netdev device, such as tap device (you can
>    use "ip tuntap" command, or libvirt), something like as below:
>     ip tuntap add tap_1 mode tap multi_queue
>  2. pass corresponding parameters in QEMU command line:
>    -netdev type=tap,ifname=tap_q,id=net1,vhost=on,vhostforce=on,queues=4,script= \
>    -device virtio-net-device,netdev=net1,mq=on,vectors=9

Hi Gonglei,

Thanks for your quick reply.

Definitively I have not gone through step 1! Nethertheless I am a but
dubious about the fact the mq property does not seem to exist for my
virtio-net-device. I get

qemu-system-arm: -device
virtio-net-device,netdev=tap0,mq=on,mac=52:54:00:12:34:56: Property
'.mq' not found

Best Regards

Eric
>  
>> Also are there any "easy" tunings I can play with to try to reach the
>> best performance.
>>
> 
> You can consider that using irq binding, core binding, vhost-net? etc..
> 
> Best regards,
> -Gonglei
> 
>> Thank you in advance
>>
>> Best Regards
>>
>> Eric
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
  2014-09-19  2:23   ` Eric Auger
@ 2014-09-19  2:30     ` Gonglei (Arei)
  2014-09-19 17:09       ` Eric Auger
  0 siblings, 1 reply; 5+ messages in thread
From: Gonglei (Arei) @ 2014-09-19  2:30 UTC (permalink / raw)
  To: Eric Auger, qemu list, Michael S. Tsirkin

> From: Eric Auger [mailto:eric.auger@linaro.org]
> Sent: Friday, September 19, 2014 10:23 AM
> To: Gonglei (Arei); qemu list; Michael S. Tsirkin
> Subject: Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
> 
> On 09/19/2014 03:42 AM, Gonglei (Arei) wrote:
> >> Subject: [Qemu-devel] [question] virtio-net-device and multi-queue option
> >>
> >> Hi,
> >>
> >>
> >> I am currently doing some benchmarks using virtio-net-device using
> >> virtio-mmio (non PCI) with qemu_system_arm with KVM. Purpose is to
> >> compare with device passthrough performance.
> >>
> >> I heard about the availability of a multi-queue option that greatly
> >> improves the performance but I currently fail in enabling it.
> >>
> >> Please could someone explain me how to turn that feature on? My current
> >> virtio-net options simply are:
> >>
> >>         -netdev tap,id=tap0,ifname="tap0" \
> >>         -device virtio-net-device,netdev=tap0
> >>
> >
> > There are some steps:
> >
> >  1. create multi-queue netdev device, such as tap device (you can
> >    use "ip tuntap" command, or libvirt), something like as below:
> >     ip tuntap add tap_1 mode tap multi_queue
> >  2. pass corresponding parameters in QEMU command line:
> >    -netdev
> type=tap,ifname=tap_q,id=net1,vhost=on,vhostforce=on,queues=4,script= \
> >    -device virtio-net-device,netdev=net1,mq=on,vectors=9
> 
> Hi Gonglei,
> 
> Thanks for your quick reply.
> 
> Definitively I have not gone through step 1! Nethertheless I am a but
> dubious about the fact the mq property does not seem to exist for my
> virtio-net-device. I get
> 
> qemu-system-arm: -device
> virtio-net-device,netdev=tap0,mq=on,mac=52:54:00:12:34:56: Property
> '.mq' not found
> 
Sorry, my typo. :(

It should be "virtio-net-pci", not "virtio-net-devcie" 

BTW, You can use help command to get a devices properties:

# ./qemu-system-x86_64 -device virtio-net-pci,? 
[...] 
virtio-net-pci.mq=on/off
[...]

Best regards,
-Gonglei

> Best Regards
> 
> Eric
> >
> >> Also are there any "easy" tunings I can play with to try to reach the
> >> best performance.
> >>
> >
> > You can consider that using irq binding, core binding, vhost-net? etc..
> >
> > Best regards,
> > -Gonglei
> >
> >> Thank you in advance
> >>
> >> Best Regards
> >>
> >> Eric
> >

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
  2014-09-19  2:30     ` Gonglei (Arei)
@ 2014-09-19 17:09       ` Eric Auger
  0 siblings, 0 replies; 5+ messages in thread
From: Eric Auger @ 2014-09-19 17:09 UTC (permalink / raw)
  To: Gonglei (Arei), qemu list, Michael S. Tsirkin

On 09/19/2014 04:30 AM, Gonglei (Arei) wrote:
>> From: Eric Auger [mailto:eric.auger@linaro.org]
>> Sent: Friday, September 19, 2014 10:23 AM
>> To: Gonglei (Arei); qemu list; Michael S. Tsirkin
>> Subject: Re: [Qemu-devel] [question] virtio-net-device and multi-queue option
>>
>> On 09/19/2014 03:42 AM, Gonglei (Arei) wrote:
>>>> Subject: [Qemu-devel] [question] virtio-net-device and multi-queue option
>>>>
>>>> Hi,
>>>>
>>>>
>>>> I am currently doing some benchmarks using virtio-net-device using
>>>> virtio-mmio (non PCI) with qemu_system_arm with KVM. Purpose is to
>>>> compare with device passthrough performance.
>>>>
>>>> I heard about the availability of a multi-queue option that greatly
>>>> improves the performance but I currently fail in enabling it.
>>>>
>>>> Please could someone explain me how to turn that feature on? My current
>>>> virtio-net options simply are:
>>>>
>>>>         -netdev tap,id=tap0,ifname="tap0" \
>>>>         -device virtio-net-device,netdev=tap0
>>>>
>>>
>>> There are some steps:
>>>
>>>  1. create multi-queue netdev device, such as tap device (you can
>>>    use "ip tuntap" command, or libvirt), something like as below:
>>>     ip tuntap add tap_1 mode tap multi_queue
>>>  2. pass corresponding parameters in QEMU command line:
>>>    -netdev
>> type=tap,ifname=tap_q,id=net1,vhost=on,vhostforce=on,queues=4,script= \
>>>    -device virtio-net-device,netdev=net1,mq=on,vectors=9
>>
>> Hi Gonglei,
>>
>> Thanks for your quick reply.
>>
>> Definitively I have not gone through step 1! Nethertheless I am a but
>> dubious about the fact the mq property does not seem to exist for my
>> virtio-net-device. I get
>>
>> qemu-system-arm: -device
>> virtio-net-device,netdev=tap0,mq=on,mac=52:54:00:12:34:56: Property
>> '.mq' not found
>>
> Sorry, my typo. :(
> 
> It should be "virtio-net-pci", not "virtio-net-devcie" 
> 
> BTW, You can use help command to get a devices properties:
> 
> # ./qemu-system-x86_64 -device virtio-net-pci,? 
> [...] 
> virtio-net-pci.mq=on/off
> [...]
Hi Gonglei,

I fear I can only use virtio-net-device since I only have VIRTIO-MMIO in
my machine file and no PCI bus.

The mq property does not seem to be supported for virtio-net-device as
reported by

sudo arm-softmmu/qemu-system-arm -M virt -device virtio-net-device,?
virtio-net-device.tx=str
virtio-net-device.x-txburst=int32
virtio-net-device.x-txtimer=uint32
virtio-net-device.bootindex=int32
virtio-net-device.netdev=netdev
virtio-net-device.vlan=vlan
virtio-net-device.mac=macaddr

Thanks

Best Regards

Eric

> 
> Best regards,
> -Gonglei
> 
>> Best Regards
>>
>> Eric
>>>
>>>> Also are there any "easy" tunings I can play with to try to reach the
>>>> best performance.
>>>>
>>>
>>> You can consider that using irq binding, core binding, vhost-net? etc..
>>>
>>> Best regards,
>>> -Gonglei
>>>
>>>> Thank you in advance
>>>>
>>>> Best Regards
>>>>
>>>> Eric
>>>
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-09-19 17:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-19  0:10 [Qemu-devel] [question] virtio-net-device and multi-queue option Eric Auger
2014-09-19  1:42 ` Gonglei (Arei)
2014-09-19  2:23   ` Eric Auger
2014-09-19  2:30     ` Gonglei (Arei)
2014-09-19 17:09       ` Eric Auger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).