As the next step in eliminating PG_CACHE pages, free rather than cache
pages in vm_pageout_scan(). The reactivation rate of cache pages created by vm_pageout_scan() is extremely low; typically no more than 0.5% to 2.25% of the pages are ever reactivated. At the same time, caching pages is more expensive than freeing them. For example, in a test with PostgreSQL, this change reduced the amount of time spent in the inactive queue scan by 1/6. Differential Revision: https://reviews.freebsd.org/D2805 Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
d5e71581dd
commit
78afdce6af
@ -1233,10 +1233,10 @@ vm_pageout_scan(struct vm_domain *vmd, int pass)
|
||||
--page_shortage;
|
||||
} else if (m->dirty == 0) {
|
||||
/*
|
||||
* Clean pages can be placed onto the cache queue.
|
||||
* This effectively frees them.
|
||||
* Clean pages can be freed.
|
||||
*/
|
||||
vm_page_cache(m);
|
||||
vm_page_free(m);
|
||||
PCPU_INC(cnt.v_dfree);
|
||||
--page_shortage;
|
||||
} else if ((m->flags & PG_WINATCFLS) == 0 && pass < 2) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user