freebsd-skq/sys/ufs/ffs
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
..
ffs_alloc.c Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
ffs_balloc.c Replace the TRIM consolodation framework originally added in -r337396 2018-08-18 22:21:59 +00:00
ffs_extern.h Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
ffs_inode.c Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
ffs_rawread.c Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
ffs_snapshot.c When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
ffs_softdep.c Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
ffs_subr.c Ensure that the inode check-hash is not left zeroed out in the case where 2018-12-15 18:49:30 +00:00
ffs_suspend.c Avoid assertion in /dev/ufssuspend when the suspend ioctl is 2018-08-01 19:06:55 +00:00
ffs_tables.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_vfsops.c Reorder ffs_verify_dinode_ckhash() so that it checks the inode check-hash 2018-12-15 18:35:46 +00:00
ffs_vnops.c For consistency with FFS2's fifoops2 and both versions of FFS's 2018-12-30 05:03:41 +00:00
fs.h Continuing efforts to provide hardening of FFS, this change adds a 2018-10-23 21:10:06 +00:00
softdep.h Replace the TRIM consolodation framework originally added in -r337396 2018-08-18 22:21:59 +00:00