Thread (15 messages) read the whole thread 15 messages, 6 authors, 2012-09-19

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

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2012-09-19 06:12:49
Also in: kvm, virtualization

On Wed, Sep 19, 2012 at 11:10:10AM +0930, Rusty Russell wrote:
Tom Herbert [off-list ref] writes:
quoted
On Tue, Sep 11, 2012 at 10:49 PM, Rusty Russell [off-list ref]wrote:
quoted
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.
Having gone to such great lengths to avoid ooo for RFS, I don't think
DaveM would be happy if we allow it for virtio_net.

So, how *would* we implement such a thing for a "hardware" device?  What
if the device will only change the receive queue if the old receive
queue is empty?

Cheers,
Rusty.
I think that would do it in most cases.  Or if we want to be more
exact we could delay switching a specific flow until no
outstanding rx packets for this flow. Not sure it's worth the
hassle.

-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help