Re: [PATCHv4] virtio-spec: virtio network device multiqueue support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Tue, Sep 11, 2012 at 10:49 PM, Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:
Jason Wang <jasowang@xxxxxxxxxx> writes:
> On 09/10/2012 02:33 PM, Michael S. Tsirkin wrote:
>> A final addition: what you suggest above would be
>> "TX follows RX", right?

BTW, yes.  But it's a weird way to express what the nic is doing.

>> It is in anticipation of something like that, that I made
>> steering programming so generic.

>> I think TX follows RX is more immediately useful for reasons above
>> but we can add both to spec and let drivers and devices
>> decide what they want to support.

You mean "RX follows TX"?  ie. accelerated RFS.  I agree.

RX following TX is logic of flow director I believe.  {a}RFS has RX follow CPU where application receive is done on the socket.  So in RFS there is no requirement to have a 1-1 correspondence between TX and RX queues, and in fact this allows different number of queues between TX and RX.  We found this necessary when using priority HW queues, so that there are more TX queues than RX.

Perhaps Tom can explain how we avoid out-of-order receive for the
accelerated RFS case?  It's not clear to me, but we need to be able to
do that for virtio-net if it implements accelerated RFS.

AFAIK ooo RX is possible with accelerated RFS.  We have an algorithm that prevents this for RFS case by deferring a migration to a new queue as long as it's possible that a flow might have outstanding packets on the old queue.  I suppose this could be implemented in the device for the HW queues, but I don't think it would be easy to cover all cases where packets were already in transit to the host or other cases where host and device queues are out of sync.
 
> AFAIK, ixgbe does "rx follows tx". The only differences between ixgbe
> and virtio-net is that ixgbe driver programs the flow director during
> packet transmission but we suggest to do it silently in the device for
> simplicity.

Implying the receive queue by xmit will be slightly laggy.  Don't know
if that's a problem.

Cheers,
Rusty.

_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux