All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] vhost-net - virtio - multiqueue - rx queue selection
@ 2017-04-20  4:37 Sujith Sankar
  2017-05-02 13:07 ` Stefan Hajnoczi
  0 siblings, 1 reply; 3+ messages in thread
From: Sujith Sankar @ 2017-04-20  4:37 UTC (permalink / raw)
  To: qemu-devel

Hi folks,

I have a question regarding the algorithm used to select rx queue of
the VM in the case of multiqueue virtio-net on KVM.

Given a 4-tuple, how can we calculate the index of the receive queue
that virtio-net is going pick for that flow?  From some of the email
threads in some of the relevant forums, it seems RSS is not used.  But
documentations/threads do not talk about how a queue is picked.

Could you please help me with this?

Thanks,
-Sujith

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

* Re: [Qemu-devel] vhost-net - virtio - multiqueue - rx queue selection
  2017-04-20  4:37 [Qemu-devel] vhost-net - virtio - multiqueue - rx queue selection Sujith Sankar
@ 2017-05-02 13:07 ` Stefan Hajnoczi
  2017-05-03 11:51   ` Jason Wang
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Hajnoczi @ 2017-05-02 13:07 UTC (permalink / raw)
  To: Sujith Sankar; +Cc: qemu-devel, Jason Wang

[-- Attachment #1: Type: text/plain, Size: 575 bytes --]

On Thu, Apr 20, 2017 at 10:07:33AM +0530, Sujith Sankar wrote:
> I have a question regarding the algorithm used to select rx queue of
> the VM in the case of multiqueue virtio-net on KVM.
> 
> Given a 4-tuple, how can we calculate the index of the receive queue
> that virtio-net is going pick for that flow?  From some of the email
> threads in some of the relevant forums, it seems RSS is not used.  But
> documentations/threads do not talk about how a queue is picked.
> 
> Could you please help me with this?

CCing Jason Wang, QEMU net maintainer.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

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

* Re: [Qemu-devel] vhost-net - virtio - multiqueue - rx queue selection
  2017-05-02 13:07 ` Stefan Hajnoczi
@ 2017-05-03 11:51   ` Jason Wang
  0 siblings, 0 replies; 3+ messages in thread
From: Jason Wang @ 2017-05-03 11:51 UTC (permalink / raw)
  To: Stefan Hajnoczi, Sujith Sankar; +Cc: qemu-devel



On 2017年05月02日 21:07, Stefan Hajnoczi wrote:
> On Thu, Apr 20, 2017 at 10:07:33AM +0530, Sujith Sankar wrote:
>> I have a question regarding the algorithm used to select rx queue of
>> the VM in the case of multiqueue virtio-net on KVM.
>>
>> Given a 4-tuple, how can we calculate the index of the receive queue
>> that virtio-net is going pick for that flow?  From some of the email
>> threads in some of the relevant forums, it seems RSS is not used.  But
>> documentations/threads do not talk about how a queue is picked.
>>
>> Could you please help me with this?
> CCing Jason Wang, QEMU net maintainer.
>
> Stefan

Automatic flow steering is mandatory in the spec (see 5.1.6.5.5):

"
When multiqueue is enabled, the device MUST use automatic receive 
steering based on packet flow. Programming of the receive steering 
classificator is implicit. After the driver transmitted a packet of a 
flow on transmitqX, the device SHOULD cause incoming packets for that 
flow to be steered to receiveqX. For uni-directional protocols, or where 
no packets have been transmitted yet, the device MAY steer a packet to a 
random queue out of the specified receiveq1…receiveqn.
"

We plan to add guest visible filters (e.g RSS) support, and may even 
consider offload it to hardware.

Thanks

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

end of thread, other threads:[~2017-05-03 11:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-20  4:37 [Qemu-devel] vhost-net - virtio - multiqueue - rx queue selection Sujith Sankar
2017-05-02 13:07 ` Stefan Hajnoczi
2017-05-03 11:51   ` Jason Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.