[PATCH] vmscan: give dirty referenced pages another pass
In a further attempt to prevent dirty pages from being written out from the LRU, don't write them if they were referenced. This gives those pages another trip around the inactive list. So more of them are written via balance_dirty_pages(). It speeds up an untar-of-five-kernel trees by 5% on a 256M box, presumably because balance_dirty_pages() has better IO patterns. It largely fixes the problem which Gerrit talked about at the kernel summit: the individual writepage()s of dirty pages coming off the tail of the LRU are reduced by 83% in their database workload. I'm a bit worried that it increases scanning and OOM possibilities under nutty VM stress cases, but nothing untoward has been noted during its four weeks in -mm, so...
Showing
Please register or sign in to comment