linux_dsm_epyc7002/drivers/net
Herbert Xu 412ca1550c macvlan: Move broadcasts into a work queue
Currently broadcasts are handled in network RX context, where
the packets are sent through netif_rx.  This means that the number
of macvlans will be constrained by the capacity of netif_rx.

For example, setting up 4096 macvlans practically causes all
broadcast packets to be dropped as the default netif_rx queue
size simply can't handle 4096 skbs being stuffed into it all
at once.

Fundamentally, we need to ensure that the amount of work handled
in each netif_rx backlog run is constrained.  As broadcasts are
anything but constrained, it either needs to be limited per run
or moved to process context.

This patch picks the second option and moves all broadcast handling
bar the trivial case of packets going to a single interface into
a work queue.  Obviously there also needs to be a limit on how
many broadcast packets we postpone in this way.  I've arbitrarily
chosen tx_queue_len of the master device as the limit (act_mirred
also happens to use this parameter in a similar way).

In order to ensure we don't exceed the backlog queue we will use
netif_rx_ni instead of netif_rx for broadcast packets.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Thanks,
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-20 18:18:55 -04:00
..
appletalk
arcnet
bonding bonding: Remove debug_fs files when module init fails 2014-04-11 15:04:40 -04:00
caif caif: delete unnecessary field initialization 2014-02-17 00:29:23 -05:00
can Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
cris
dsa
ethernet tg3: update rx_jumbo_pending ring param only when jumbo frames are enabled 2014-04-18 18:01:13 -04:00
fddi
hamradio yam: replace del_timer by del_timer_sync 2014-03-27 15:28:06 -04:00
hippi
hyperv Drivers: net: hyperv: Address UDP checksum issues 2014-04-11 15:15:12 -04:00
ieee802154 at86rf230: fix __at86rf230_read_subreg function 2014-04-15 00:08:22 -04:00
irda irtty-sir.c: Do not set_termios() on irtty_close() 2014-02-17 16:27:51 -05:00
phy net: phy: at803x: use genphy_config_init() 2014-04-20 18:18:54 -04:00
plip
ppp net: ppp: use sk_unattached_filter api 2014-03-31 00:45:09 -04:00
slip
team netpoll: Remove gfp parameter from __netpoll_setup 2014-03-29 17:58:37 -04:00
usb r8152: check RTL8152_UNPLUG 2014-04-12 01:59:38 -04:00
vmxnet3 vmxnet3: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:23 -07:00
wan driver/net: cosa driver uses udelay incorrectly 2014-04-15 00:08:22 -04:00
wimax wimax/i2400m: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
wireless mwifiex: fix hung task on command timeout 2014-04-15 13:27:05 -04:00
xen-netback xen-netback: Trivial format string fix 2014-04-04 10:49:53 -04:00
dummy.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
eql.c
ifb.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
Kconfig netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP) 2014-03-17 15:48:12 -04:00
LICENSE.SRC
loopback.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
macvlan.c macvlan: Move broadcasts into a work queue 2014-04-20 18:18:55 -04:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c net: nlmon: flag nlmon devs with LLTX/SG 2014-03-28 16:49:47 -04:00
ntb_netdev.c NTB: Code Style Clean-up 2014-04-07 10:59:19 -07:00
rionet.c rapidio: rework device hierarchy and introduce mport class of devices 2014-04-07 16:36:07 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c drivers/net: Use RCU_INIT_POINTER(x, NULL) in tun.c 2014-03-27 00:18:09 -04:00
veth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-04-02 20:53:45 -07:00
vxlan.c ipv4: add a sock pointer to dst->output() path. 2014-04-15 13:47:15 -04:00
xen-netfront.c drivers: net: xen-netfront: fix array initialization bug 2014-04-12 16:49:06 -04:00