diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2019-01-15 01:02:16 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2019-01-15 01:02:16 +0000 |
commit | 756a5412798b7de1709bb1de2db5ba2a5908cba3 (patch) | |
tree | 90da29baacc3d3eccb4f10f6629ca9f3993be631 /share/man/man9/ifnet.9 | |
parent | 7c895edb6673b6cfe6ddcc024a5d2ab234bda7cc (diff) | |
download | src-756a5412798b7de1709bb1de2db5ba2a5908cba3.tar.gz src-756a5412798b7de1709bb1de2db5ba2a5908cba3.zip |
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
Notes
Notes:
svn path=/head/; revision=343030
Diffstat (limited to 'share/man/man9/ifnet.9')
0 files changed, 0 insertions, 0 deletions