[RFC/PATCH v3 0/2] ROW scheduling Algorithm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Tatyana Brokhman <tlinder@xxxxxxxxxxxxxx>

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:
Give READ requests priority over WRITE with WRITE starvation in mind

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: Adding ROW scheduling algorithm
  block: compile ROW statically into the kernel

 Documentation/block/row-iosched.txt |  186 ++++++++++
 block/Kconfig.iosched               |   22 ++
 block/Makefile                      |    1 +
 block/row-iosched.c                 |  686 +++++++++++++++++++++++++++++++++++
 4 files changed, 895 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/block/row-iosched.txt
 create mode 100644 block/row-iosched.c

-- 
1.7.6
--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. 
Is a member of Code Aurora Forum, hosted by the Linux Foundation
--
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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux