Re: [PATCH 2/9] pasemi_mac: Clean TX ring in poll

2007-07-02 Thread Jeff Garzik

Olof Johansson wrote:

Clean the TX ring in the poll call, to avoid sitting on mapped buffers
for a long time. NFS doesn't seem to like it much, for example.


Signed-off-by: Olof Johansson [EMAIL PROTECTED]

Index: netdev-2.6/drivers/net/pasemi_mac.c
===
--- netdev-2.6.orig/drivers/net/pasemi_mac.c
+++ netdev-2.6/drivers/net/pasemi_mac.c
@@ -1052,6 +1052,7 @@ static int pasemi_mac_poll(struct net_de
int pkts, limit = min(*budget, dev-quota);
struct pasemi_mac *mac = netdev_priv(dev);
 
+	pasemi_mac_clean_tx(mac);

pkts = pasemi_mac_clean_rx(mac, limit);


Why is this needed?  Is your TX interrupt mitigated or delayed somehow?

In general, drivers should only clean TX in one place.  Doing so in 
multiple places tends to indicate a bug somewhere.


You are correct that you should not sit on buffers for too long -- that 
increases latency of all who are waiting on those buffers to be sent.



-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/9] pasemi_mac: Clean TX ring in poll

2007-06-22 Thread Olof Johansson
Clean the TX ring in the poll call, to avoid sitting on mapped buffers
for a long time. NFS doesn't seem to like it much, for example.


Signed-off-by: Olof Johansson [EMAIL PROTECTED]

Index: netdev-2.6/drivers/net/pasemi_mac.c
===
--- netdev-2.6.orig/drivers/net/pasemi_mac.c
+++ netdev-2.6/drivers/net/pasemi_mac.c
@@ -1052,6 +1052,7 @@ static int pasemi_mac_poll(struct net_de
int pkts, limit = min(*budget, dev-quota);
struct pasemi_mac *mac = netdev_priv(dev);
 
+   pasemi_mac_clean_tx(mac);
pkts = pasemi_mac_clean_rx(mac, limit);
 
dev-quota -= pkts;

--
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html