On Tuesday 03 May 2011 20:54:43 Per Forlin wrote: > >> page_not_up_to_date: > >> /* Get exclusive access to the page ... */ > >> error = lock_page_killable(page); > > I looked at the code in do_generic_file_read(). lock_page_killable > > waits until the current read ahead is completed. > > Is it possible to configure the read ahead to push multiple read > > request to the block device queue?add I believe sleeping in __lock_page_killable is the best possible scenario. Most cards I've seen work best when you use at least 64KB reads, so it will be faster to wait there than to read smaller units. > When I first looked at this I used dd if=/dev/mmcblk0 of=/dev/null bs=1M count=4 > If bs is larger than read ahead, this will make the execution loop in > do_generic_file_read() reading 512 until 1M is read. The second time > in this loop it will wait on lock_page_killable. > > If bs=16k the execution wont stuck at lock_page_killable. submitting small 512 byte read requests is a real problem when the underlying page size is 16 KB. If your interpretation is right, we should probably find a way to make it read larger chunks on flash media. Arnd -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>