Dropped transmits are not common, but when they do occur, increasing
the transmit queue length often helps.

Signed-off-by: Ed Cashin <ecas...@coraid.com>
---
 drivers/block/aoe/aoenet.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
index 162c647..a1bb692 100644
--- a/drivers/block/aoe/aoenet.c
+++ b/drivers/block/aoe/aoenet.c
@@ -50,7 +50,11 @@ __setup("aoe_iflist=", aoe_iflist_setup);
 static spinlock_t txlock;
 static struct sk_buff_head skbtxq;
 
-/* enters with txlock held */
+/* enters with txlock held
+ *
+ * Use __must_hold(&txlock) for sparse when upcoming patch adds it to
+ * compiler.h.
+ */
 static int
 tx(void)
 {
@@ -58,7 +62,10 @@ tx(void)
 
        while ((skb = skb_dequeue(&skbtxq))) {
                spin_unlock_irq(&txlock);
-               dev_queue_xmit(skb);
+               if (dev_queue_xmit(skb) == NET_XMIT_DROP && net_ratelimit())
+                       pr_warn("aoe: packet could not be sent on %s.  %s\n",
+                               skb->dev ? skb->dev->name : "netif",
+                               "consider increasing tx_queue_len");
                spin_lock_irq(&txlock);
        }
        return 0;
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to