Thread (17 messages) 17 messages, 5 authors, 2012-11-19

Re: [rfc net-next v6 2/3] virtio_net: multiqueue support

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2012-11-18 09:11:29
Also in: kvm, lkml, virtualization

On Sat, Nov 17, 2012 at 12:35:29AM +0000, Ben Hutchings wrote:
On Tue, 2012-11-13 at 08:40 +0200, Michael S. Tsirkin wrote:
quoted
On Mon, Nov 05, 2012 at 11:38:39AM +1030, Rusty Russell wrote:
quoted
quoted
@@ -924,11 +1032,10 @@ static void virtnet_get_ringparam(struct net_device *dev,
 {
 	struct virtnet_info *vi = netdev_priv(dev);
 
-	ring->rx_max_pending = virtqueue_get_vring_size(vi->rvq);
-	ring->tx_max_pending = virtqueue_get_vring_size(vi->svq);
+	ring->rx_max_pending = virtqueue_get_vring_size(vi->rq[0].vq);
+	ring->tx_max_pending = virtqueue_get_vring_size(vi->sq[0].vq);
 	ring->rx_pending = ring->rx_max_pending;
 	ring->tx_pending = ring->tx_max_pending;
-
 }
This assumes all vqs are the same size.  I think this should probably
check: for mq mode, use the first vq, otherewise use the 0th.
For rx_pending/tx_pending I think what is required here is the
actual number of outstanding buffers.
Dave, Eric - right?

So this should be the total over all rings and to be useful,
rx_max_pending/tx_max_pending should be the total too.
So far as I know, all current implementations use the number of
descriptors per ring here. virtio_net should be consistent with this.

Ben.
Problem is, it could in theory be different between rings. I guess we
could use the maximum.

What's the right thing to do for rx_pending - I am guessing
we want the current outstanding packets right?

quoted
quoted
For bonus points, check this assertion at probe time.
Looks like we can easily support different queues too.
-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help