freebsd-dev/sys/netinet6
Matt Macy 4f6c66cc9c UDP: further performance improvements on tx
Cumulative throughput while running 64
  netperf -H $DUT -t UDP_STREAM -- -m 1
on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps

Single stream throughput increases from 910kpps to 1.18Mpps

Baseline:
https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg

- Protect read access to global ifnet list with epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg

- Protect short lived ifaddr references with epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg

- Convert if_afdata read lock path to epoch
https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg

A fix for the inpcbhash contention is pending sufficient time
on a canary at LLNW.

Reviewed by:	gallatin
Sponsored by:	Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D15409
2018-05-23 21:02:14 +00:00
..
dest6.c Remove some unneccessary variable sets in IPv6 code, as detected by 2018-03-24 12:43:34 +00:00
frag6.c Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
icmp6.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
icmp6.h
in6_cksum.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_fib.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_fib.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_gif.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_ifattach.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
in6_ifattach.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_jail.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
in6_mcast.c Pair CURVNET_SET and CURVNET_RESTORE in a block 2018-05-21 13:08:44 +00:00
in6_pcb.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
in6_pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_pcbgroup.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
in6_proto.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_rmx.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in6_rss.c
in6_rss.h
in6_src.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
in6_var.h ip(6)_freemoptions: defer imo destruction to epoch callback task 2018-05-20 00:22:28 +00:00
in6.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
in6.h Follow the RFC6980 and silently ignore following IPv6 NDP messages 2017-12-15 12:37:32 +00:00
ip6_ecn.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip6_fastfwd.c Send an ICMPv6 PacketTooBig message in case of forwading a packet which 2018-05-02 22:11:16 +00:00
ip6_forward.c netpfil: Introduce PFIL_FWD flag 2018-03-23 16:56:44 +00:00
ip6_gre.c
ip6_id.c Fix some typos. 2017-12-28 20:40:56 +00:00
ip6_input.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
ip6_mroute.c Merge r1.120 from NetBSD: 2018-02-02 07:39:34 +00:00
ip6_mroute.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip6_output.c Revert r332894 at the request of the submitter. 2018-04-24 19:55:12 +00:00
ip6_var.h ip(6)_freemoptions: defer imo destruction to epoch callback task 2018-05-20 00:22:28 +00:00
ip6.h
ip6protosw.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_fw_nat64.h
ip_fw_nptv6.h
mld6_var.h Separate list manipulation locking from state change in multicast 2018-05-02 19:36:29 +00:00
mld6.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
mld6.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
nd6_nbr.c Remove support for the Arcnet protocol. 2018-04-13 21:18:04 +00:00
nd6_rtr.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
nd6.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
nd6.h Do pass removing some write-only variables from the kernel. 2017-12-25 04:48:39 +00:00
pim6_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pim6.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
raw_ip6.c UDP: further performance improvements on tx 2018-05-23 21:02:14 +00:00
raw_ip6.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
route6.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
scope6_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
scope6.c sys/netinet6: fix typos in comments. No functional change. 2018-01-23 19:40:05 +00:00
sctp6_usrreq.c Fix a logical inversion bug. 2018-04-08 12:08:20 +00:00
sctp6_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
send.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
send.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp6_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
udp6_usrreq.c Revert r332894 at the request of the submitter. 2018-04-24 19:55:12 +00:00
udp6_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00