[ofa-general] [PATCH] IPoIB: Remove redundant check in xmit handler
Krishna Kumar
krkumar2 at in.ibm.com
Wed Nov 14 21:05:37 PST 2007
qdisc_run() tests for queue_stopped() before calling __qdisc_run(),
and the same check is done in every iteration of __qdisc_run(), so
another check is not required in the driver xmit.
To validate, I put a debug in the TX_BUSY path which never hit with
64 threads running overnight exercising this code a few 100 million
times.
Signed-off-by: Krishna Kumar <krkumar2 at in.ibm.com>
---
ipoib_main.c | 10 ----------
1 files changed, 10 deletions(-)
diff -ruNp 1/drivers/infiniband/ulp/ipoib/ipoib_main.c 2/drivers/infiniband/ulp/ipoib/ipoib_main.c
--- 1/drivers/infiniband/ulp/ipoib/ipoib_main.c 2007-11-14 14:07:06.000000000 +0530
+++ 2/drivers/infiniband/ulp/ipoib/ipoib_main.c 2007-11-14 14:07:35.000000000 +0530
@@ -666,16 +666,6 @@ static int ipoib_start_xmit(struct sk_bu
if (unlikely(!spin_trylock_irqsave(&priv->tx_lock, flags)))
return NETDEV_TX_LOCKED;
- /*
- * Check if our queue is stopped. Since we have the LLTX bit
- * set, we can't rely on netif_stop_queue() preventing our
- * xmit function from being called with a full queue.
- */
- if (unlikely(netif_queue_stopped(dev))) {
- spin_unlock_irqrestore(&priv->tx_lock, flags);
- return NETDEV_TX_BUSY;
- }
-
if (likely(skb->dst && skb->dst->neighbour)) {
if (unlikely(!*to_ipoib_neigh(skb->dst->neighbour))) {
ipoib_path_lookup(skb, dev);
More information about the general
mailing list