[ewg] Re: Continue of "defer skb_orphan() until irqs enabled"

akepner at sgi.com akepner at sgi.com
Wed Sep 24 10:11:35 PDT 2008


On Wed, Sep 24, 2008 at 10:06:43AM -0700, Roland Dreier wrote:
> ...
> That leads to stalls/terrible performance in some cases, because we do
> not collect TX completions often enough to free socket space to allow
> more packets to be queued so we can get very long stalls.
> 
> The best solution would be to get rid of the IRQ-disabling locking (and
> stop doing LLTX).  That may be possible without too much pain.

What about this change to my earlier patch?:

@@ -789,7 +792,11 @@ static int ipoib_start_xmit(struct sk_bu
	}

 out:
-	spin_unlock_irqrestore(&priv->tx_lock, flags);
+	local_irq_restore(flags);
+	if (orphan)
+		skb_orphan(skb);
+
+	spin_unlock(&priv->tx_lock);

	return NETDEV_TX_OK;
 }

-- 
Arthur




More information about the ewg mailing list