Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
commit e3ed8ad1a7b36bc63b31df6fc9771dc63f8cac3e Author: Sven Eckelmann sven@narfation.org Date: Tue Sep 11 17:59:42 2018 +0200
batman-adv: Enable LockLess TX for softif
The batadv interfaces are virtual interfaces which just tunnel the traffic over other ethernet compatible interfaces. It doesn't need serialization during the tx phase and is using RCU for most of its internal datastructures. Since it doesn't have actual queues which could be locked independently, the throughput gets significantly reduced by the extra lock in the core net code.
8 parallel TCP connections forwarded by an IPQ4019 based hardware over 5GHz could reach:
* without LLTX: 349 Mibit/s * with LLTX: 563 Mibit/s
Signed-off-by: Sven Eckelmann sven@narfation.org
e3ed8ad1a7b36bc63b31df6fc9771dc63f8cac3e net/batman-adv/soft-interface.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 488aefe..5db5a0a 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -1061,6 +1061,7 @@ static void batadv_softif_init_early(struct net_device *dev) dev->needs_free_netdev = true; dev->priv_destructor = batadv_softif_free; dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_NETNS_LOCAL; + dev->features |= NETIF_F_LLTX; dev->priv_flags |= IFF_NO_QUEUE;
/* can't call min_mtu, because the needed variables