freebsd-nq/sys/net
Stephen Hurd fe51d4cdfe Add knob to control tx ring abdication.
r323954 changed the mp ring behaviour when 64-bit atomics were
available to abdicate the TX ring rather than having one become a
consumer thereby running to completion on TX. The consumer of the mp
ring was then triggered in the tx task rather than blocking the TX call.
While this significantly lowered the number of RX drops in small-packet
forwarding, it also negatively impacts TX performance.

With this change, the default behaviour is reverted, causing one TX ring
to become a consumer during the enqueue call. A new sysctl,
dev.X.Y.iflib.tx_abdicate is added to control this behaviour.

Reviewed by:	gallatin
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D16302
2018-07-20 17:45:26 +00:00
..
altq UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
bpf_buffer.c
bpf_buffer.h
bpf_filter.c
bpf_jitter.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_jitter.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Move BPFIF_* macro definitions into .c file, where struct bpf_if is 2018-06-19 10:34:45 +00:00
bpf.h
bpfdesc.h Move BPFIF_* macro definitions into .c file, where struct bpf_if is 2018-06-19 10:34:45 +00:00
bridgestp.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
bridgestp.h
dlt.h Re-apply r190640. 2018-05-31 09:11:21 +00:00
ethernet.h Allow to specify PCP on packets not belonging to any VLAN. 2018-03-27 15:29:32 +00:00
firewire.h
ieee8023ad_lacp.c Added missing CTLFLAG_VNET to lacp default_strict_mode 2018-01-24 10:13:14 +00:00
ieee8023ad_lacp.h
ieee_oui.h
if_arp.h Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
if_bridge.c Allow different bridge types to coexist 2018-05-11 05:00:40 +00:00
if_bridgevar.h Allow different bridge types to coexist 2018-05-11 05:00:40 +00:00
if_clone.c net: fix set but not used 2018-05-19 05:27:49 +00:00
if_clone.h iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
if_dead.c
if_debug.c
if_disc.c
if_dl.h
if_edsc.c
if_enc.c netpfil: Introduce PFIL_FWD flag 2018-03-23 16:56:44 +00:00
if_enc.h
if_epair.c Improve MAC address uniqueness on if_epair(4). 2018-05-23 13:10:57 +00:00
if_ethersubr.c Reduce overhead of entropy collection 2018-05-31 21:53:07 +00:00
if_fwsubr.c Improve copy-and-pasted versions of SIOCGIFADDR. 2018-03-27 20:51:49 +00:00
if_gif.c Deduplicate the code. 2018-07-09 11:03:28 +00:00
if_gif.h epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00
if_gre.c Deduplicate the code. 2018-07-09 11:03:28 +00:00
if_gre.h epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00
if_ipsec.c Apply the change from r272770 to if_ipsec(4) interface. 2018-05-11 16:50:25 +00:00
if_ipsec.h
if_lagg.c epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00
if_lagg.h CK: update consumers to use CK macros across the board 2018-05-24 23:21:23 +00:00
if_llatbl.c Move invoking of callout_stop(&lle->lle_timer) into llentry_free(). 2018-07-17 11:33:23 +00:00
if_llatbl.h CK: update consumers to use CK macros across the board 2018-05-24 23:21:23 +00:00
if_llc.h
if_loop.c Explicitly change the link state when we assingn an address. 2018-06-09 09:57:14 +00:00
if_me.c Deduplicate the code. 2018-07-09 11:03:28 +00:00
if_media.c Finish removing FDDI and tokenring media support. 2018-04-23 21:10:33 +00:00
if_media.h Finish removing FDDI and tokenring media support. 2018-04-23 21:10:33 +00:00
if_mib.c
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
if_stf.c Rework IP encapsulation handling code. 2018-06-05 20:51:01 +00:00
if_tap.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
if_tap.h
if_tapvar.h
if_tun.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
if_tun.h
if_types.h
if_var.h Deduplicate the code. 2018-07-09 11:03:28 +00:00
if_vlan_var.h Allow to specify PCP on packets not belonging to any VLAN. 2018-03-27 15:29:32 +00:00
if_vlan.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
if_vxlan.c net: fix set but not used 2018-05-19 05:27:49 +00:00
if_vxlan.h Add support for IPv6 scoped addresses to vxlan 2017-12-30 04:03:53 +00:00
if.c Deduplicate the code. 2018-07-09 11:03:28 +00:00
if.h iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
ifdi_if.m iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
iflib_clone.c iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
iflib_private.h Work around lack of TX IRQs in iflib for netmap 2018-05-16 21:03:22 +00:00
iflib.c Add knob to control tx ring abdication. 2018-07-20 17:45:26 +00:00
iflib.h Assorted TSO fixes for em(4)/iflib(9) and dead code removal: 2018-07-15 19:04:23 +00:00
ifq.h
mp_ring.c Add knob to control tx ring abdication. 2018-07-20 17:45:26 +00:00
mp_ring.h Add knob to control tx ring abdication. 2018-07-20 17:45:26 +00:00
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c
netisr.h
netmap_legacy.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
netmap_user.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
netmap_virt.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
netmap.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
paravirt.h
pfil.c netpfil: Introduce PFIL_FWD flag 2018-03-23 16:56:44 +00:00
pfil.h netpfil: Introduce PFIL_FWD flag 2018-03-23 16:56:44 +00:00
pfkeyv2.h
pfvar.h pf: Fix typo in r336221 2018-07-12 18:07:28 +00:00
ppp_defs.h
radix_mpath.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix_mpath.h
radix.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix.h Fix typo. 2018-06-16 19:21:09 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
rndis.h
route_var.h Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
route.c epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00
route.h Reduce code duplication for inpcb route caching 2018-01-23 03:15:39 +00:00
rss_config.c
rss_config.h
rtsock.c epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
vnet.h