ipvlan: Defer multicast / broadcast processing to a work-queue
authorMahesh Bandewar <maheshb@google.com>
Tue, 5 May 2015 00:06:03 +0000 (17:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 May 2015 23:29:49 +0000 (19:29 -0400)
commitba35f8588f474d5bf8988615b04ee722a2684fd2
tree0333353c2743d8271d6d2a2dd0cf4e35169a734c
parent76061d99a3ba6c29c3dfc24bda2ec0550838951f
ipvlan: Defer multicast / broadcast processing to a work-queue

Processing multicast / broadcast in fast path is performance draining
and having more links means more cloning and bringing performance
down further.

Broadcast; in particular, need to be given to all the virtual links.
Earlier tricks of enabling broadcast bit for IPv4 only interfaces are not
really working since it fails autoconf. Which means enabling broadcast
for all the links if protocol specific hacks do not have to be added into
the driver.

This patch defers all (incoming as well as outgoing) multicast traffic to
a work-queue leaving only the unicast traffic in the fast-path. Now if we
need to apply any additional tricks to further reduce the impact of this
(multicast / broadcast) type of traffic, it can be implemented while
processing this work without affecting the fast-path.

Signed-off-by: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipvlan/ipvlan.h
drivers/net/ipvlan/ipvlan_core.c
drivers/net/ipvlan/ipvlan_main.c