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