Weigh dirty and clean pages differently when scanning the active queue.
During a page shortage, clean pages can be reclaimed much more quickly than
dirty pages and thus provide more immediate utility to the system. Dirty
pages must first be laundered and therefore cannot contribute towards the
shortfall until after some I/O completes. This change modifies the active
queue scan to have clean pages count more heavily towards a shortage than
dirty pages. The inactive queue target is also scaled accordingly so that
we scan for dirty pages more aggressively than clean pages, causing the
laundry thread to start working sooner than it would otherwise, and
improving its ability to cluster pages.
The weight is set by the vm.act_scan_laundry_weight sysctl; clean and dirty
pages are given an equal weight by setting this sysctl to 1.
Reviewed by: alc