On Wed, 28 Jul 2010 20:40:21 +0900 (JST) KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote: > 3. pageout() is intended anynchronous api. but doesn't works so. > > pageout() call ->writepage with wbc->nonblocking=1. because if the system have > default vm.dirty_ratio (i.e. 20), we have 80% clean memory. so, getting stuck > on one page is stupid, we should scan much pages as soon as possible. > > HOWEVER, block layer ignore this argument. if slow usb memory device connect > to the system, ->writepage() will sleep long time. because submit_bio() call > get_request_wait() unconditionally and it doesn't have any PF_MEMALLOC task > bonus. The idea is that vmscan doesn't call ->writepage if the underlying queue is congested. may_write_to_queue()->bdi_queue_congested() should return false and we skip the write. If that logic is broken then that would explain a few things... -- 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