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-13 06:38:03
Also in: kvm, lkml, netdev

On Mon, Nov 05, 2012 at 11:38:39AM +1030, Rusty Russell wrote:
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.
For bonus points, check this assertion at probe time.
Looks like we can easily support different queues too.

-- 
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