FreeBSD src
Go to file
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
bin sh: Keep output buffer across builtins. 2017-05-18 22:10:04 +00:00
cddl Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
contrib Extend libblacklist support with new action types 2017-05-23 19:03:07 +00:00
crypto Refine and update blacklist support in sshd 2017-05-12 15:20:12 +00:00
etc compress: Add basic tests. 2017-05-21 14:05:32 +00:00
gnu Add 11.1 to the mdoc(7) mdoc.local.in. 2017-05-22 14:21:07 +00:00
include Use __BSD_VISIBLE test instead checking for absense of _POSIX_SOURCE. 2017-05-24 09:25:13 +00:00
kerberos5 kerberos5: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:34:36 +00:00
lib Allow cpuset_{get,set}affinity in capabilities mode 2017-05-24 00:58:30 +00:00
libexec For ld.so direct execution mode, implement -p option: search for the 2017-05-23 10:00:52 +00:00
release Allow PORTSDIR to be overridden in the pkg-stage target. 2017-05-22 14:21:45 +00:00
rescue DIRDEPS_BUILD: Update dependencies. 2017-05-09 01:48:23 +00:00
sbin Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
secure Fix invalid .o SRCS from r314527. 2017-05-09 01:48:02 +00:00
share Add BIT_OR2(), BIT_AND2(), BIT_NAND2(), BIT_XOR() and BIT_XOR2(). 2017-05-24 10:09:54 +00:00
sys o Rearrange struct inpcb fields to optimize the TCP output code path 2017-05-24 17:47:16 +00:00
targets Enable llvm-objdump by default per r310775 2017-05-16 03:12:51 +00:00
tests Fix build of AIO tests with -DDEBUG 2017-05-21 15:37:08 +00:00
tools Honor WITHOUT_TFTP for check-old* and delete-old* targets. 2017-05-23 15:46:21 +00:00
usr.bin Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
usr.sbin Fix a buffer overflow in bootparamd(8) 2017-05-24 16:30:38 +00:00
.arcconfig
.arclint
COPYRIGHT
LOCKS
MAINTAINERS Due to time constraints remove myself as a vmm(4) maintainer. 2017-04-15 22:42:23 +00:00
Makefile Cache compiler metadata and reuse it at installworld time. 2017-04-13 22:07:34 +00:00
Makefile.inc1 Add a -DNO_LIBS to skip building the libraries phase as well. 2017-05-09 23:58:07 +00:00
Makefile.libcompat Support skipping 'make obj' tree-walk. 2017-05-09 20:21:38 +00:00
ObsoleteFiles.inc Revert r317446 and bring back cy(4). 2017-04-27 16:14:32 +00:00
README Correct the URL to instructions for updated system sources. 2017-05-15 15:18:36 +00:00
README.md
UPDATING UPDATING: clarify ino64 upgrade instructions even further 2017-05-24 17:11:10 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

For copyright information, please see the file COPYRIGHT in this directory (additional copyright information also exists for some sources in this tree - please see the specific source directories for more information).

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

Source Roadmap:

bin				System/user commands.

cddl			Various commands and libraries under the Common Development  
				and Distribution License.

contrib			Packages contributed by 3rd parties.

crypto			Cryptography stuff (see crypto/README).

etc				Template files for /etc.

gnu				Various commands and libraries under the GNU Public License.  
				Please see gnu/COPYING* for more information.

include			System include files.

kerberos5		Kerberos5 (Heimdal) package.

lib				System libraries.

libexec			System daemons.

release			Release building Makefile & associated tools.

rescue			Build system for statically linked /rescue utilities.

sbin			System commands.

secure			Cryptographic libraries and commands.

share			Shared resources.

sys				Kernel sources.

tests			Regression tests which can be run by Kyua.  See tests/README
				for additional information.

tools			Utilities for regression testing and miscellaneous tasks.

usr.bin			User commands.

usr.sbin		System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html