On Thu, Oct 08, 2009 at 04:20:03PM +0800, Hugh Dickins wrote: > 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(). Ah big sorry! I should really double check the code.. OK I'll do trylock_page(). Thanks, Fengguang -- 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