[PATCH] kaweth:BQL support

Subsystems: networking drivers, the rest, usb networking drivers

STALE5029d

4 messages, 3 authors, 2012-11-12 · open the first message on its own page

[PATCH] kaweth:BQL support

From: Oliver Neukum <oliver@neukum.org>
Date: 2012-11-09 12:19:47

This adds the callbacks for the statistics necessary for BQL

Signed-off-by: Oliver Neukum <redacted>
---
 drivers/net/usb/kaweth.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index afb117c..f30e07f 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -715,6 +715,7 @@ static int kaweth_open(struct net_device *net)
 		usb_kill_urb(kaweth->rx_urb);
 		goto err_out;
 	}
+	netdev_reset_queue(net);
 	kaweth->opened = 1;
 
 	netif_start_queue(net);
@@ -783,6 +784,7 @@ static void kaweth_usb_transmit_complete(struct urb *urb)
 {
 	struct kaweth_device *kaweth = urb->context;
 	struct sk_buff *skb = kaweth->tx_skb;
+	struct net_device *net = kaweth->net;
 	int status = urb->status;
 
 	if (unlikely(status != 0))
@@ -790,7 +792,8 @@ static void kaweth_usb_transmit_complete(struct urb *urb)
 			dev_dbg(&urb->dev->dev, "%s: TX status %d.\n",
 				kaweth->net->name, status);
 
-	netif_wake_queue(kaweth->net);
+	netif_wake_queue(net);
+	netdev_completed_queue(net, 1, skb->len - 2);
 	dev_kfree_skb_irq(skb);
 }
 
@@ -854,6 +857,7 @@ skip:
 	{
 		kaweth->stats.tx_packets++;
 		kaweth->stats.tx_bytes += skb->len;
+		netdev_sent_queue(net, skb->len - 2);
 	}
 
 	spin_unlock_irq(&kaweth->device_lock);
-- 
1.7.7

Re: [PATCH] kaweth:BQL support

From: Eric Dumazet <hidden>
Date: 2012-11-09 13:15:47

On Fri, 2012-11-09 at 13:19 +0100, Oliver Neukum wrote:
quoted hunk
This adds the callbacks for the statistics necessary for BQL

Signed-off-by: Oliver Neukum <redacted>
---
 drivers/net/usb/kaweth.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index afb117c..f30e07f 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -715,6 +715,7 @@ static int kaweth_open(struct net_device *net)
 		usb_kill_urb(kaweth->rx_urb);
 		goto err_out;
 	}
+	netdev_reset_queue(net);
 	kaweth->opened = 1;
 
 	netif_start_queue(net);
@@ -783,6 +784,7 @@ static void kaweth_usb_transmit_complete(struct urb *urb)
 {
 	struct kaweth_device *kaweth = urb->context;
 	struct sk_buff *skb = kaweth->tx_skb;
+	struct net_device *net = kaweth->net;
 	int status = urb->status;
 
 	if (unlikely(status != 0))
@@ -790,7 +792,8 @@ static void kaweth_usb_transmit_complete(struct urb *urb)
 			dev_dbg(&urb->dev->dev, "%s: TX status %d.\n",
 				kaweth->net->name, status);
 
-	netif_wake_queue(kaweth->net);
+	netif_wake_queue(net);
+	netdev_completed_queue(net, 1, skb->len - 2);
 	dev_kfree_skb_irq(skb);
 }
 
@@ -854,6 +857,7 @@ skip:
 	{
 		kaweth->stats.tx_packets++;
 		kaweth->stats.tx_bytes += skb->len;
+		netdev_sent_queue(net, skb->len - 2);
 	}
 
 	spin_unlock_irq(&kaweth->device_lock);

I am curious to know if it changes anything on the behavior of this
network adapter ?

Because it seems queue is stopped anyway when a packet is in transmit.

(netif_stop_queue() in kaweth_start_xmit(), and netif_wake_queue() in
kaweth_usb_transmit_complete())

What I am missing ?

Thanks

Re: [PATCH] kaweth:BQL support

From: Oliver Neukum <oliver@neukum.org>
Date: 2012-11-12 07:38:55

On Friday 09 November 2012 05:15:44 Eric Dumazet wrote:
I am curious to know if it changes anything on the behavior of this
network adapter ?

Because it seems queue is stopped anyway when a packet is in transmit.
True, I'd need to also do more changes on the tx path.

Dave, for now please disregard the patch.

	Regards
		Oliver

Re: [PATCH] kaweth:BQL support

From: David Miller <davem@davemloft.net>
Date: 2012-11-12 07:59:51

From: Oliver Neukum <oliver@neukum.org>
Date: Mon, 12 Nov 2012 08:38:57 +0100
On Friday 09 November 2012 05:15:44 Eric Dumazet wrote:
quoted
I am curious to know if it changes anything on the behavior of this
network adapter ?

Because it seems queue is stopped anyway when a packet is in transmit.
True, I'd need to also do more changes on the tx path.

Dave, for now please disregard the patch.
Ok.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help