On 22/01/12 02:45, Roman Yeryomin wrote:
> On 17 January 2012 11:42, Helmut Schaa <helmut.sc...@googlemail.com> wrote:
>> @@ -313,6 +312,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr)
>>        struct net_device *dev = (struct net_device*)ptr;
>>        struct raeth_priv *priv = netdev_priv(dev);
>>
>> +       spin_lock(&priv->page_lock);
>>        while ((priv->tx[priv->skb_free_idx].txd2 & TX_DMA_DONE) &&
>>               (priv->tx_skb[priv->skb_free_idx])) {
>>                dev_kfree_skb_irq(priv->tx_skb[priv->skb_free_idx]);
>> @@ -321,6 +321,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr)
>>                if (priv->skb_free_idx >= NUM_TX_DESC)
>>                        priv->skb_free_idx = 0;
>>        }
>> +       spin_unlock(&priv->page_lock);
>>
>>        ramips_fe_int_enable(RAMIPS_TX_DLY_INT);
>>  }
> 
> Seems that spinlock here introduces performance hit in wifi<->eth path.
> Are you sure it's needed? Seems that it works fine also without this spinlock.


helmut,

can you verify this ?
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to