[PATCH net-next] r8169: Support for byte queue limits

Subsystems: 8169 10/100/1000 gigabit ethernet driver, networking drivers, the rest

STALE5376d

4 messages, 2 authors, 2011-12-19 · open the first message on its own page

[PATCH net-next] r8169: Support for byte queue limits

From: <hidden>
Date: 2011-12-19 09:28:03

From: Igor Maravic <redacted>

Changes to r8169 to use byte queue limits.

Signed-off-by: Igor Maravic <redacted>
---
 drivers/net/ethernet/realtek/r8169.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 36b2a4b..bfdb5fd 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5326,6 +5326,7 @@ static void rtl8169_tx_clear(struct rtl8169_private *tp)
 {
 	rtl8169_tx_clear_range(tp, tp->dirty_tx, NUM_TX_DESC);
 	tp->cur_tx = tp->dirty_tx = 0;
+	netdev_reset_queue(tp->dev);
 }
 
 static void rtl8169_schedule_work(struct net_device *dev, work_func_t task)
@@ -5460,6 +5461,8 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb,
 		txd->opts1 |= cpu_to_le32(LastFrag);
 	}
 
+	netdev_sent_queue(tp->dev, skb->len);
+
 	return cur_frag;
 
 err_out:
@@ -5624,6 +5627,8 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
 				 void __iomem *ioaddr)
 {
 	unsigned int dirty_tx, tx_left;
+	unsigned int bytes_compl = 0;
+	int tx_compl = 0;
 
 	dirty_tx = tp->dirty_tx;
 	smp_rmb();
@@ -5642,14 +5647,18 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
 		rtl8169_unmap_tx_skb(&tp->pci_dev->dev, tx_skb,
 				     tp->TxDescArray + entry);
 		if (status & LastFrag) {
-			dev->stats.tx_packets++;
-			dev->stats.tx_bytes += tx_skb->skb->len;
+			tx_compl++;
+			bytes_compl += tx_skb->skb->len;
 			dev_kfree_skb(tx_skb->skb);
 			tx_skb->skb = NULL;
 		}
 		dirty_tx++;
 		tx_left--;
 	}
+	dev->stats.tx_packets += tx_compl;
+	dev->stats.tx_bytes += bytes_compl;
+
+	netdev_completed_queue(dev, tx_compl, bytes_compl);
 
 	if (tp->dirty_tx != dirty_tx) {
 		tp->dirty_tx = dirty_tx;
-- 
1.7.5.4

Re: [PATCH net-next] r8169: Support for byte queue limits

From: Igor Maravić <hidden>
Date: 2011-12-19 09:29:29

Resubmitted the patch. Sorry for double signoffs.
BR
Igor

Re: [PATCH net-next] r8169: Support for byte queue limits

From: Eric Dumazet <hidden>
Date: 2011-12-19 09:46:08

Le lundi 19 décembre 2011 à 10:27 +0100, igorm@etf.rs a écrit :
From: Igor Maravic <redacted>

Changes to r8169 to use byte queue limits.

Signed-off-by: Igor Maravic <redacted>
---
 drivers/net/ethernet/realtek/r8169.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
What are the changes in this version, versus prior submissions ?
quoted hunk
 
 static void rtl8169_schedule_work(struct net_device *dev, work_func_t task)
@@ -5460,6 +5461,8 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb,
 		txd->opts1 |= cpu_to_le32(LastFrag);
 	}
 
+	netdev_sent_queue(tp->dev, skb->len);
+
 	return cur_frag;
 
Ignoring a review/comment/suggestion is not very wise, since I wont Ack
this patch as is, and I'll remember for your next patches that you dont
care of me taking the time to review your work.

Your choice.

Please call this from rtl8169_start_xmit() instead.
 
	netdev_sent_queue(dev, skb->len);

Re: [PATCH net-next] r8169: Support for byte queue limits

From: Igor Maravić <hidden>
Date: 2011-12-19 09:53:48

What are the changes in this version, versus prior submissions ?
You didn't answer to my comments, so I thought that my version was OK.
I'l change this in a sec.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help