Re: [PATCH net-next v2 4/4] net: mvneta: Spread out the TX queues management on all CPUs
From: David Miller <davem@davemloft.net>
Date: 2015-12-05 22:24:44
Also in:
linux-arm-kernel, lkml
From: David Miller <davem@davemloft.net>
Date: 2015-12-05 22:24:44
Also in:
linux-arm-kernel, lkml
From: Marcin Wojtas <redacted> Date: Sat, 5 Dec 2015 20:14:31 +0100
Hi Gregory,quoted
@@ -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.