[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