freebsd-skq/sys/netinet
Gleb Smirnoff 6a6cefac3d o Rearrange struct inpcb fields to optimize the TCP output code path
considering cache line hits and misses.  Put the lock and hash list
  glue into the first cache line, put inp_refcount inp_flags inp_socket
  into the second cache line.
o On allocation zero out entire structure except the lock and list entries,
  including inp_route inp_lle inp_gencnt.  When inp_route and inp_lle were
  introduced, they were added below inp_zero_size, resulting on not being
  cleared after free/alloc.  This definitely was a source of bugs with route
  caching.  Could be that r315956 has just fixed one of them.
  The inp_gencnt is reinitialized on every alloc, so it is safe to clear it.

This has been proved to improve TCP performance at Netflix.

Obtained from:		rrs
Differential Revision:	D10686
2017-05-24 17:47:16 +00:00
..
cc Fix a variety of cosmetic typos and misspellings 2017-01-15 18:00:45 +00:00
khelp Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
libalias ipfw nat and natd support multiple aliasing instances with "nat global" feature 2017-05-10 19:41:52 +00:00
tcp_stacks When a SYN-ACK is received in SYN-SENT state, RFC 793 requires the 2017-04-26 06:20:58 +00:00
accf_data.c
accf_dns.c
accf_http.c
icmp6.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
icmp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
if_ether.c Fix the L2 address printed in the "arp: %s moved from %*D" message. 2017-03-11 04:57:52 +00:00
if_ether.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
igmp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
igmp.c Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
igmp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_cksum.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
in_debug.c
in_fib.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_fib.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_gif.c Merge helper fib* functions used for basic lookups. 2015-12-08 10:50:03 +00:00
in_jail.c Allow explicitly assigned IPv4 loopback address to be used in jails 2017-03-31 00:41:54 +00:00
in_kdtrace.c Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
in_kdtrace.h Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
in_mcast.c Add missing braces around MCAST_EXCLUDE check when KTR support is 2017-05-13 18:41:24 +00:00
in_pcb.c o Rearrange struct inpcb fields to optimize the TCP output code path 2017-05-24 17:47:16 +00:00
in_pcb.h o Rearrange struct inpcb fields to optimize the TCP output code path 2017-05-24 17:47:16 +00:00
in_pcbgroup.c Unbreak the RSS/PCBGROUp build. 2016-03-31 00:53:23 +00:00
in_prot.c Remove BSD and USL copyright and update license block in in_prot.c, as the 2016-07-28 18:39:30 +00:00
in_proto.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_rmx.c Code duplication but rib_head is special. Not found an easy way to go 2016-02-03 21:56:51 +00:00
in_rss.c Rename rss_soft_m2cpuid() -> rss_soft_m2cpuid_v4() in preparation for 2015-08-29 06:58:30 +00:00
in_rss.h Rename rss_soft_m2cpuid() -> rss_soft_m2cpuid_v4() in preparation for 2015-08-29 06:58:30 +00:00
in_systm.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
in.h Make sysctl identifiers for direct netisr queue unique. 2017-04-11 19:20:20 +00:00
ip6.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_carp.c After the in_control() changes in r257692, an existing address is 2017-01-25 19:04:08 +00:00
ip_carp.h After the in_control() changes in r257692, an existing address is 2017-01-25 19:04:08 +00:00
ip_divert.c Set M_BCAST and M_MCAST flags on mbuf sent via divert socket. 2017-05-17 09:04:09 +00:00
ip_divert.h
ip_dummynet.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
ip_encap.h
ip_fastfwd.c When we are sending IP fragments, update ip pointers in IP_PROBE() for 2016-12-29 19:57:46 +00:00
ip_fw.h Add O_EXTERNAL_DATA opcode support. 2017-04-03 02:44:40 +00:00
ip_gre.c
ip_icmp.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ip_icmp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_id.c Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
ip_input.c Make sysctl identifiers for direct netisr queue unique. 2017-04-11 19:20:20 +00:00
ip_mroute.c Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
ip_mroute.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_options.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_options.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_output.c Fix reference count leak with L2 caching. 2017-03-25 15:06:28 +00:00
ip_reass.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
pim_var.h
pim.h
raw_ip.c Reduce in_pcbinfo_init() by two params. No users supply any flags to this 2017-05-15 21:58:36 +00:00
sctp_asconf.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_asconf.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_auth.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_auth.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_bsd_addr.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_bsd_addr.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_cc_functions.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_constants.h Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. 2016-12-07 19:30:59 +00:00
sctp_crc32.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_crc32.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_dtrace_declare.h
sctp_dtrace_define.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctp_header.h Cleanup the names of SSN, SID, TSN, FSN, PPID and MID. 2016-12-07 19:30:59 +00:00
sctp_indata.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_indata.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_input.c Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp_input.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_lock_bsd.h netinet/sctp*: minor spelling fixes in comments. 2016-05-02 20:56:11 +00:00
sctp_os_bsd.h Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp_os.h
sctp_output.c Set the DF bit for responses to out-of-the-blue packets. 2017-04-28 15:38:34 +00:00
sctp_output.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_pcb.c Allow SCTP to use the hostcache. 2017-04-29 19:20:50 +00:00
sctp_pcb.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_peeloff.c
sctp_peeloff.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_ss_functions.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_structs.h Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_syscalls.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sctp_sysctl.c Whitespace changes. 2016-12-26 11:06:41 +00:00
sctp_sysctl.h Retire net.inet.sctp.strict_sacks and net.inet.sctp.strict_data_order 2016-05-12 16:34:59 +00:00
sctp_timer.c Don't set the DF-bit on timer based retransmissions. 2017-04-29 09:57:27 +00:00
sctp_timer.h Code cleanup which will silence a warning in PVS / D5245. 2016-02-17 18:04:22 +00:00
sctp_uio.h Whitespace changes. 2016-12-06 10:21:25 +00:00
sctp_usrreq.c Allow SCTP to use the hostcache. 2017-04-29 19:20:50 +00:00
sctp_var.h Use consistently uint32_t for mtu values. 2017-04-26 19:26:40 +00:00
sctp.h This is work done by Michael Tuexen and myself at the IETF. This 2016-04-07 09:10:34 +00:00
sctputil.c Allow SCTP to use the hostcache. 2017-04-29 19:20:50 +00:00
sctputil.h Allow SCTP to use the hostcache. 2017-04-29 19:20:50 +00:00
siftr.c Use SI_SUB_LAST instead of SI_SUB_SMP as the "catch-all" subsystem. 2016-03-11 23:18:06 +00:00
tcp_debug.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_debug.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_fastopen.c Fix VIMAGE-related bugs in TFO. The autokey callout vnet context was 2017-02-03 17:02:57 +00:00
tcp_fastopen.h Implementation of server-side TCP Fast Open (TFO) [RFC7413]. 2015-12-24 19:09:48 +00:00
tcp_fsm.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_hostcache.c Use inet_ntoa_r() instead of inet_ntoa() throughout the kernel 2017-02-16 20:47:41 +00:00
tcp_hostcache.h Remove "long" variables from the TCP stack (not including the modular 2016-10-06 16:28:34 +00:00
tcp_input.c When a SYN-ACK is received in SYN-SENT state, RFC 793 requires the 2017-04-26 06:20:58 +00:00
tcp_lro.c Flush the LRO ctrl as soon as lro_mbufs fills up. There is no need to 2017-04-24 22:35:00 +00:00
tcp_lro.h tcp/lro: Implement hash table for LRO entries. 2016-08-02 06:36:47 +00:00
tcp_offload.c Augment struct tcpstat with tcps_states[], which is used for book-keeping 2016-01-27 00:45:46 +00:00
tcp_offload.h
tcp_output.c Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
tcp_pcap.c The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_pcap.h The TCPPCAP debugging feature caches recently-used mbufs for use in 2016-07-06 16:17:13 +00:00
tcp_reass.c There is no good reason for TCP reassembly zone to be UMA_ZONE_NOFREE. 2017-05-10 23:32:31 +00:00
tcp_sack.c Remove a KASSERT which is not always true. 2016-12-25 17:37:18 +00:00
tcp_seq.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_subr.c Reduce in_pcbinfo_init() by two params. No users supply any flags to this 2017-05-15 21:58:36 +00:00
tcp_syncache.c Represent "a syncache overflow hasn't happend yet" by using 2017-04-21 06:05:34 +00:00
tcp_syncache.h Syncoockies can be used in combination with the syncache. If the cache 2017-04-20 19:19:33 +00:00
tcp_timer.c Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_timer.h Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
tcp_timewait.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcp_usrreq.c The connect() system call should return -1 and set errno to EAFNOSUPPORT 2017-05-22 15:29:10 +00:00
tcp_var.h Use estimated RTT for receive buffer auto resizing instead of timestamps 2017-04-10 08:19:35 +00:00
tcp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tcpip.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
toecore.c This change re-adds L2 caching for TCP and UDP, as originally added in D4306 2016-06-02 17:51:29 +00:00
toecore.h
udp_usrreq.c Reduce in_pcbinfo_init() by two params. No users supply any flags to this 2017-05-15 21:58:36 +00:00
udp_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
udp.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
udplite.h