freebsd-skq/sys/fs
Gleb Smirnoff 756a541279 Allocate pager bufs from UMA instead of 80-ish mutex protected linked list.
o In vm_pager_bufferinit() create pbuf_zone and start accounting on how many
  pbufs are we going to have set.
  In various subsystems that are going to utilize pbufs create private zones
  via call to pbuf_zsecond_create(). The latter calls uma_zsecond_create(),
  and sets a limit on created zone. After startup preallocate pbufs according
  to requirements of all pbuf zones.

  Subsystems that used to have a private limit with old allocator now have
  private pbuf zones: md(4), fusefs, NFS client, smbfs, VFS cluster, FFS,
  swap, vnode pager.

  The following subsystems use shared pbuf zone: cam(4), nvme(4), physio(9),
  aio(4). They should have their private limits, but changing that is out of
  scope of this commit.

o Fetch tunable value of kern.nswbuf from init_param2() and while here move
  NSWBUF_MIN to opt_param.h and eliminate opt_swap.h, that was holding only
  this option.
  Default values aren't touched by this commit, but they probably should be
  reviewed wrt to modern hardware.

This change removes a tight bottleneck from sendfile(2) operation, that
uses pbufs in vnode pager. Other pagers also would benefit from faster
allocation.

Together with:	gallatin
Tested by:	pho
2019-01-15 01:02:16 +00:00
..
autofs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cd9660 Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cuse Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
deadfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
devfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
ext2fs When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
fdescfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
fifofs Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00
fuse Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
msdosfs Fix clobbering of the fatchain cache for clustered i/o's when full 2018-12-21 21:17:45 +00:00
nandfs Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfs Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfsclient Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
nfsserver Fix the NFSv4 server to obey vfs.nfsd.nfs_privport. 2018-12-20 22:21:41 +00:00
nullfs Make it easier for filesystems to count themselves as jail-enabled, 2018-05-04 20:54:27 +00:00
procfs Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
pseudofs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
smbfs Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
tmpfs Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
udf Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
unionfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00