[PATCH net-next v2 4/4] net: mvneta: Spread out the TX queues management on all CPUs
davem at davemloft.net
Sat Dec 5 14:24:37 PST 2015
From: Marcin Wojtas <mw at semihalf.com>
Date: Sat, 5 Dec 2015 20:14:31 +0100
> Hi Gregory,
>> @@ -1824,13 +1835,16 @@ error:
>> static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
>> struct mvneta_port *pp = netdev_priv(dev);
>> - u16 txq_id = skb_get_queue_mapping(skb);
>> + u16 txq_id = smp_processor_id() % txq_number;
> I think it may be ok to bind TXQs to different CPUs, but I don't think
> that replacing skb_get_queue_mapping by in fact smp_processor_id() is
> the best idea. This way you use only 2 TXQs on A385 and 4 TXQs on AXP.
> There are HW mechanisms like WRR or EJP that provide balancing for
> egress, so let's better keep all 8.
Also it is possible for other parts of the stack to set the SKB queue
mapping and you must respect that setting rather than override it.
More information about the linux-arm-kernel