freebsd-dev/sys/dev/nvme
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
..
nvme_ctrlr_cmd.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_ctrlr.c Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
nvme_ns_cmd.c Make NVMe compatible with the original API 2018-08-22 04:29:24 +00:00
nvme_ns.c Add NVMe drive to NOIOB quirk list 2019-01-08 15:30:56 +00:00
nvme_private.h Put a workaround in for command timeout malfunctioning 2018-10-26 14:27:37 +00:00
nvme_qpair.c Add descriptions to NVMe interrupts. 2018-12-26 23:41:52 +00:00
nvme_sim.c Remove CAM SIM lock from NVMe SIM. 2018-12-24 23:28:11 +00:00
nvme_sysctl.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_test.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_util.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme.c Remove do-nothing nvme_modevent. 2018-11-16 16:51:44 +00:00
nvme.h nda(4) fix check for Dataset Management support 2018-12-13 13:25:37 +00:00