freebsd-skq/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
firewire.h
ieee8023ad_lacp.c
ieee8023ad_lacp.h
ieee_oui.h
if_arp.h
if_bridge.c
if_bridgevar.h
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
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
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
if_media.h
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
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
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_user.h
netmap_virt.h
netmap.h
paravirt.h
pfil.c
pfil.h
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
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