freebsd-dev/sys
Gleb Smirnoff 2bab0c5535 New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and
up to now.

The new sendfile is the code that Netflix uses to send their multiple tens
of gigabits of data per second. The new implementation features asynchronous
I/O, when I/O operations are launched, but not awaited to be complete. An
explanation of why such behavior is beneficial compared to old one is
going to be too long for a commit message, so we will skip it here.

Additional features of new syscall are extra flags, which provide an
application more control over data sent. The SF_NOCACHE flag tells
kernel that data shouldn't be cached after it was sent. The SF_READAHEAD()
macro allows to specify readahead size in pages.

The new syscalls is a drop in replacement. No modifications are required
to applications. One can take nginx binary for stable/10 and run it
successfully on head. Although SF_NODISKIO lost its original sense, as now
sendfile doesn't block, and now means something completely different (tm),
using the new sendfile the old way is absolutely safe.

Celebrates:	Netflix global launch!
Sponsored by:	Nginx, Inc.
Sponsored by:	Netflix
Relnotes:	yes
2016-01-08 20:34:57 +00:00
..
amd64 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
arm Print curpmap in "show pcpu" command. 2016-01-07 12:31:49 +00:00
arm64 Fix the arm64 build by adding an all-important '&' to get a pointer. 2016-01-02 21:13:14 +00:00
boot Reduce libstand Makefile duplication 2016-01-08 19:12:26 +00:00
bsm Merge from contrib/openbsm to bring the kernel audit bits up to date with OpenBSM 1.2 alpha 4: 2015-12-20 23:22:04 +00:00
cam Convert sys/cam to use make_dev_s(). 2016-01-07 20:22:55 +00:00
cddl Fix const conversion warning in lz4_decompress 2016-01-06 20:28:09 +00:00
compat LinuxKPI style changes: 2016-01-08 10:04:19 +00:00
conf Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
contrib Have krping use IB_ACCESS_LOCAL_WRITE because it's required for remote 2016-01-05 01:58:30 +00:00
crypto Break up opencrypto/xform.c so it can be reused piecemeal 2015-12-30 22:43:07 +00:00
ddb Add helper to catch single step debug event and distinguish it from bkpt 2015-11-27 19:03:59 +00:00
dev New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +00:00
fs ext2fs: reading mmaped file in Ext4 causes panic 2016-01-07 21:43:43 +00:00
gdb
geom Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
gnu
i386 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
isa
kern New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +00:00
kgssapi Unset the gss kernel state when gssd exits 2016-01-01 17:06:16 +00:00
libkern libkern: ffs, fls: s/4/3/ the 3rd BSD clause 2015-10-22 21:04:47 +00:00
mips Make the 'env' directive described in config(5) work on all architectures, 2016-01-02 02:53:48 +00:00
modules Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
net Do more fine-grained locking in rtrequest1_fib(). 2016-01-08 16:25:11 +00:00
net80211 [net80211] fix duration field; it's unsigned, but not long. 2016-01-04 17:17:06 +00:00
netgraph Make it possible for sbappend() to preserve M_NOTREADY on mbufs, just like 2016-01-08 19:03:20 +00:00
netinet Apply the changes from r293284 to one additional file. 2016-01-07 11:54:20 +00:00
netinet6 Finish r293098: make ip6_getpmtu() and ip6_getpmtu_ctl() use new routing API 2016-01-04 18:32:24 +00:00
netipsec Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
netnatm
netpfil Convert pf(4) to the new routing API. 2016-01-07 10:20:03 +00:00
netsmb The problem report was for a crash that happened when smbfs was 2015-11-18 23:04:01 +00:00
nfs Add kernel support to the NFS server for the "-manage-gids" 2015-11-30 21:54:27 +00:00
nfsclient
nfsserver
nlm
ofed Make it possible for sbappend() to preserve M_NOTREADY on mbufs, just like 2016-01-08 19:03:20 +00:00
opencrypto Break up opencrypto/xform.c so it can be reused piecemeal 2015-12-30 22:43:07 +00:00
pc98 Add asynchronous command support to the pass(4) driver, and the new 2015-12-03 20:54:55 +00:00
powerpc Make arguments for booke_init() u_long, to match register width. 2016-01-04 02:20:14 +00:00
riscv/include Import RISC-V machine headers. This is a minimal set required to compile 2015-12-17 18:44:30 +00:00
rpc Improve locking of sg_threadcount. 2015-11-19 08:04:05 +00:00
security Merge from contrib/openbsm to bring the kernel audit bits up to date with OpenBSM 1.2 alpha 4: 2015-12-20 23:22:04 +00:00
sparc64 Make using the #address-cells property on the interrupt parent in device 2016-01-02 19:28:35 +00:00
sys New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +00:00
teken
tests Style 9 changes. 2015-11-12 10:31:14 +00:00
tools Rename the /usr/share/doc/legal files to driver.LICENSE to work around 2015-10-16 00:38:05 +00:00
ufs Recheck curthread->td_su after the VFS_SYNC() call, and re-sync if the 2015-12-21 11:50:32 +00:00
vm Add missed relpbuf() for a smallfs page-in. 2015-12-27 14:42:39 +00:00
x86 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
xdr
xen Clean up unused-but-set-variable spotted by gcc-4.9. 2015-12-31 01:54:07 +00:00
Makefile