]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Refinements to r281079's sequential access optimization: Prefetched pages,
authoralc <alc@FreeBSD.org>
Mon, 3 Aug 2015 20:30:27 +0000 (20:30 +0000)
committeralc <alc@FreeBSD.org>
Mon, 3 Aug 2015 20:30:27 +0000 (20:30 +0000)
commit57edafe0ad8081d61959cce4e1069e2ae95e51ef
tree4d708eef6d3b01c9094d68306c95c76a70fe3ae4
parent62dd603c4d4b62d285f4e69aef3b75ea9c88f88f
Refinements to r281079's sequential access optimization: Prefetched pages,
which constitute the majority of the pages that are processed by
vm_fault_dontneed(), are already near the tail of the inactive queue.  Only
the pages at faulting virtual addresses are actually moved by
vm_page_advise(..., MADV_DONTNEED).  However, vm_page_advise(...,
MADV_DONTNEED) is simultaneously too aggressive and passive for the moved
pages.  It makes most of these pages too easily reclaimable, and at the same
time it leaves enough pages in the active queue to trigger pageouts by the
page daemon.  Instead, with this change, the pages at faulting virtual
addresses are moved to the tail of the inactive queue, where they are
relatively close to the pages prefetched by the same page fault.

Discussed with: jeff
Sponsored by: EMC / Isilon Storage Division
sys/vm/vm_fault.c