Hi I tested with this patch on my board. But i didn't get any performance benefit. Which benchmark did you use? And sometime this scheduler didn't work well read/write operation. (i didn't know exactly what problem.) The below is my environment: Kernel Version: linux-3.4 Card: eMMC4.5 (50MHz DDR mode, 8-bit buswidth) Host controller : dw-mmc (DesignWare MMC controller) Benchmark : IOzone *CFQ Scheduler Read : 35MB Write : 17MB *ROW Scheduler Read : 28MB Write : 17MB How do you think about this result? Best Regards, Jaehoon Chung On 08/05/2012 08:30 PM, Tatyana Brokhman wrote: > The ROW scheduling algorithm will be used in mobile devices as default > block layer IO scheduling algorithm. ROW stands for "READ Over WRITE" > which is the main requests dispatch policy of this algorithm. > > The ROW IO scheduler was developed with the mobile devices needs in > mind. In mobile devices we favor user experience upon everything else, > thus we want to give READ IO requests as much priority as possible. > In mobile devices we won’t have AS much parallel threads as on desktops. > Usually it’s a single thread or at most 2 simultaneous working threads > for read & write. Favoring READ requests over WRITEs decreases the READ > latency greatly. > > The main idea of the ROW scheduling policy is: > If there are READ requests in pipe - dispatch them but don't starve > the WRITE requests too much. > > Bellow you’ll find a small comparison of ROW to existing schedulers. > The test that was run for these measurements is parallel lmdd read and write. > The tests were performed on: > kernel version: 3.4 > Underline device driver: mmc > Host controller: msm-sdcc > Card:standard emmc NAND flash > > -------------------------------------------------------------------------- > Algorithm | Throughput [mb/sec] | Worst case Latency [msec] | > | READ | WRITE | READ | WRITE | > -------------------------------------------------------------------------- > Noop | 12.12 | 25.18 | 4407 | 4804 | > Deadline | 12.02 | 24.6 | 705 | 5130 | > CFQ | 20.81 | 15.23 | 230 | 9370 | > ROW | 27.75 | 15.34 | 85 | 12025 | > -------------------------------------------------------------------------| > > > Tatyana Brokhman (2): > block: Expose kblock_schedule_delayed_work() > block: Adding ROW scheduling algorithm > > Documentation/block/row-iosched.txt | 117 ++++++ > block/Kconfig.iosched | 22 ++ > block/Makefile | 1 + > block/row-iosched.c | 675 +++++++++++++++++++++++++++++++++++ > include/linux/blkdev.h | 2 + > 5 files changed, 817 insertions(+), 0 deletions(-) > create mode 100644 Documentation/block/row-iosched.txt > create mode 100644 block/row-iosched.c > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html