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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>