On Thu, 8 Oct 2009, Wu Fengguang wrote: > On Wed, Oct 07, 2009 at 11:50:58PM +0800, Nikita Danilov wrote: > > > > One potential problem with this is that generic_writepages() waits on > > page locks and this can stall kswapd (always bad). This can be worked > > around by replacing lock_page() with trylock_page() conditionally on > > wbc->for_reclaim (or wbc->nonblocking?), but then, this almost look > > like a separate function would be better. > > IMHO trylock_page() is not necessary. Locked pages are rare in normal > states. kswapd already do lock_page() for all pages it try to examine > state for reclaim. So it makes sense for lumpy pageout to follow the > (simple) convention. You're mistaken? The only lock_page() I see in vmscan.c is in handle_write_error(), the important ones are all trylock_page(). And I agree with Nikita that they need to be trylock_page(). Hugh -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html