Phoronix has reported that sendfile syscall on FreeBSD has been rewritten to be much faster. Netflix, a company that uses FreeBSD to serve video streams across the country, are the guys behind this project.
Log: 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
Reported by Phoronix: https://www.phoronix.com/scan.php?page=news_item&px=FreeBSD-Faster-Sendfile
Read the original message: https://lists.freebsd.org/pipermail/svn-src-head/2016-January/080924.html
Well, Netflix gives with one hand, and takes away with the other. While they enjoy using FreeBSD for their servers, there’s no support whatsoever for FreeBSD users to view their product. I recommend that Netflix be used in a VirtualBox linux vm (6MB+) with Google-Chrome, which has the required DRM plugin. Meanwhile, I urge Netflix to develop a cross-platform plugin for Firefox to benefit other Os’s (not windows) that don’t spy on them. –gary