1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-04 09:09:56 +00:00
freebsd/sys
Konstantin Belousov 8917728875 vn_io_fault() handling of the LOR for i/o into the file-backed buffers
has observable overhead when the buffer pages are not resident or not
mapped.  The overhead comes at least from two factors, one is the
additional work needed to detect the situation, prepare and execute
the rollbacks.  Another is the consequence of the i/o splitting into
the batches of the held pages, causing filesystems see series of the
smaller i/o requests instead of the single large request.

Note that expected case of the resident i/o buffer does not expose
these issues.  Provide a prefaulting for the userspace i/o buffers,
disabled by default.  I am careful of not enabling prefaulting by
default for now, since it would be detrimental for the applications
which speculatively pass extra-large buffers of anonymous memory to
not deal with buffer sizing (if such apps exist).

Found and tested by:	bde, emaste
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-07-31 04:12:51 +00:00
..
amd64 Improve comments. 2015-07-30 15:47:53 +00:00
arm Remove obsolete vendor code from Alpine platform support 2015-07-30 13:45:34 +00:00
arm64 Add enough of pmap_page_set_memattr to run gstat. It still needs to split 2015-07-30 16:17:44 +00:00
boot Use consistent spacing. 2015-07-25 20:17:19 +00:00
bsm
cam Refactor unmapped buffer address handling. 2015-07-23 19:13:41 +00:00
cddl Add warning about low KSTACK_PAGES for ZFS use 2015-07-28 11:19:38 +00:00
compat Make pipes in CloudABI work. 2015-07-29 17:18:27 +00:00
conf Add GPIO backlight driver compatible with Linux FDT bindings. 2015-07-30 19:04:14 +00:00
contrib Import Annapurna Labs Alpine HAL to sys/contrib/ 2015-07-28 14:20:33 +00:00
crypto const'ify an arg that we don't update... 2015-07-29 23:37:15 +00:00
ddb Various changes to the registers displayed in DDB for x86. 2015-07-22 01:09:02 +00:00
dev Add GPIO backlight driver compatible with Linux FDT bindings. 2015-07-30 19:04:14 +00:00
fs This patch fixes a problem where, if the NFSv4 server has a previous 2015-07-29 23:06:30 +00:00
gdb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
geom Report the scheme and provider names in warning message about unaligned 2015-07-26 11:16:48 +00:00
gnu The GNU Amlogic DTS files have some errors (e.g. bad register 2015-04-11 08:17:39 +00:00
i386 Improve comments. 2015-07-30 15:47:53 +00:00
isa
kern vn_io_fault() handling of the LOR for i/o into the file-backed buffers 2015-07-31 04:12:51 +00:00
kgssapi
libkern Remove checks for __ARM_EABI__, we only build for EABI now. 2015-07-09 21:02:40 +00:00
mips Remove dead functions pmap_pvdump and pads. 2015-07-29 20:47:27 +00:00
modules Build if_stf(4) module only when both INET and INET6 support are enabled. 2015-07-30 10:26:43 +00:00
net Clean up this header file... 2015-07-31 00:23:21 +00:00
net80211 Break out the current 802.11 software scan methods into an indirect table. 2015-06-08 02:35:43 +00:00
netgraph * Address review (and add a bit myself). 2015-07-12 18:14:38 +00:00
netinet Update snd_una description to make it more readable. 2015-07-30 19:24:49 +00:00
netinet6 Eliminate the use of m_copydata() in gif_encapcheck(). 2015-07-29 14:07:43 +00:00
netipsec these are comparing authenticators and need to be constant time... 2015-07-31 00:31:52 +00:00
netnatm
netpfil Reduce overhead of ipfw's me6 opcode. 2015-07-29 10:53:42 +00:00
netsmb
nfs
nfsclient Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsserver
nlm
ofed ib mad: fix an incorrect use of list_for_each_entry 2015-07-30 18:28:37 +00:00
opencrypto Fix XTS, and name things a bit better... 2015-07-14 07:45:18 +00:00
pc98 Spell crypto correctly. 2015-07-14 10:47:56 +00:00
powerpc Implement the lockstat provider using SDT(9) instead of the custom provider 2015-07-19 22:14:09 +00:00
rpc Remove useless acquire semantic from the atomic_add operation before 2015-07-28 06:58:10 +00:00
security fd: make 'rights' a manadatory argument to fget* functions 2015-07-05 19:05:16 +00:00
sparc64 o Revert the other functional half of r239864, i. e. the merge of r134227 2015-07-24 15:13:21 +00:00
sys Revert r285125 until rmlocks get fixed. 2015-07-30 19:52:43 +00:00
teken
tools
ufs - Make 'struct buf *buf' private to vfs_bio.c. Having a global variable 2015-07-29 02:26:57 +00:00
vm Do not pretend that vm_fault(9) supports unwiring the address. Rename 2015-07-30 18:28:34 +00:00
x86 Add bit names for the IA32_MISC_ENABLE msr. 2015-07-28 06:55:08 +00:00
xdr
xen Add support for Xen blkif indirect segment I/Os. This makes it possible for 2015-07-30 03:50:01 +00:00
Makefile Kill EoL whitespace. 2015-05-29 14:03:07 +00:00