[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nonblocking-vm.patch
Rik van Riel wrote:
>
> ...
> Page_launder (shrink_cache) scans the inactive_dirty list.
>
> Pages which are ready to be reclaimed get moved to the inactive_clean
> list, from where __alloc_pages() deals with them.
>
The clang you heard was a penny. (Nickel? Dime?)
So you have kswapd running page_launder most of the time, but under
stress, page allocators will do it too.
With all this infrastructure, we can tell beforehand whether
a writeout will block. And I think that changes everything. It
presumably means that we can get quite a bit smarter in there - if
kswapd sees a non-blockingly-writeable mapping, go write it and move
the pages <here>. If kswapd sees some dirty pages which might cause
request queue blockage, then move them <there>. If the caller is _not_
kswapd then blocking is sometimes desirable, so do something else.
I think I'm pretty much finished mangling vmscan.c (honest). Let
me get the current stuff settled in and working not-completely-terribly,
then you can get it working properly, OK? Should be a few days more..
I'll leave the additional instrumentation in place for the while, find some
way of getting the kernel to spit it out on demand.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/