Mark Johnston eeacb3b02f Merge the vm_page hold and wire mechanisms.
The hold_count and wire_count fields of struct vm_page are separate
reference counters with similar semantics.  The remaining essential
differences are that holds are not counted as a reference with respect
to LRU, and holds have an implicit free-on-last unhold semantic whereas
vm_page_unwire() callers must explicitly determine whether to free the
page once the last reference to the page is released.

This change removes the KPIs which directly manipulate hold_count.
Functions such as vm_fault_quick_hold_pages() now return wired pages
instead.  Since r328977 the overhead of maintaining LRU for wired pages
is lower, and in many cases vm_fault_quick_hold_pages() callers would
swap holds for wirings on the returned pages anyway, so with this change
we remove a number of page lock acquisitions.

No functional change is intended.  __FreeBSD_version is bumped.

Reviewed by:	alc, kib
Discussed with:	jeff
Discussed with:	jhb, np (cxgbe)
Tested by:	pho (previous version)
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D19247
2019-07-08 19:46:20 +00:00
..
2019-05-24 06:07:33 +00:00
2018-07-07 15:55:52 +00:00
2019-02-25 21:59:01 +00:00
2019-05-28 18:05:10 +00:00
2019-05-17 13:08:12 +00:00
2019-01-25 21:38:28 +00:00
2018-10-15 18:39:33 +00:00
2019-03-19 14:34:53 +00:00
2019-05-30 13:52:32 +00:00
2018-12-17 21:34:09 +00:00
2019-03-20 17:27:00 +00:00
2018-08-21 10:08:12 +00:00
2019-05-23 12:51:13 +00:00
2019-06-07 18:34:48 +00:00
2019-02-05 21:37:34 +00:00
2019-03-11 14:26:45 +00:00
2018-04-13 20:30:49 +00:00
2019-02-05 21:37:34 +00:00
2018-09-26 19:41:00 +00:00
2019-06-08 16:26:56 +00:00
2019-02-05 21:37:34 +00:00
2018-07-27 10:40:48 +00:00
2019-07-01 17:05:41 +00:00
2019-02-04 21:28:25 +00:00
2019-04-16 02:46:21 +00:00
2019-02-26 19:55:03 +00:00