lineage_android_kernel_sams.../block
Tahsin Erdogan 0d2d22df9b block: Make CFQ default to IOPS mode on SSDs
CFQ idling causes reduced IOPS throughput on non-rotational disks.
Since disk head seeking is not applicable to SSDs, it doesn't really
help performance by anticipating future near-by IO requests.

By turning off idling (and switching to IOPS mode), we allow other
processes to dispatch IO requests down to the driver and so increase IO
throughput.

Following FIO benchmark results were taken on a cloud SSD offering with
idling on and off:

Idling     iops    avg-lat(ms)    stddev            bw
------------------------------------------------------
    On     7054    90.107         38.697     28217KB/s
   Off    29255    21.836         11.730    117022KB/s

fio --name=temp --size=100G --time_based --ioengine=libaio \
    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \
    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \
    --filename=/dev/sdb --runtime=10 --iodepth=64 --numjobs=10

And the following is from a local SSD run:

Idling     iops    avg-lat(ms)    stddev            bw
------------------------------------------------------
    On    19320    33.043         14.068     77281KB/s
   Off    21626    29.465         12.662     86507KB/s

fio --name=temp --size=5G --time_based --ioengine=libaio \
    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \
    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \
    --filename=/fio_data --runtime=10 --iodepth=64 --numjobs=10

Change-Id: I2311c1b349092d5d6afe5200037f6aeccf506e04
Reviewed-by: Nauman Rafique <nauman@google.com>
Signed-off-by: Tahsin Erdogan <tahsin@google.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2018-11-15 07:38:02 +03:00
..
partitions mac: validate mac_partition is within sector 2018-09-17 11:10:14 +03:00
Kconfig
Kconfig.iosched block: cgroups, kconfig, build bits for BFQ-v7r8-3.4 2015-09-10 12:28:41 -05:00
Makefile block: cgroups, kconfig, build bits for BFQ-v7r8-3.4 2015-09-10 12:28:41 -05:00
bfq-cgroup.c block: introduce the BFQ-v7r8 I/O sched for 3.4 2015-09-10 12:30:11 -05:00
bfq-ioc.c block: introduce the BFQ-v7r8 I/O sched for 3.4 2015-09-10 12:30:11 -05:00
bfq-iosched.c block, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.4.0 2015-09-10 12:30:20 -05:00
bfq-sched.c bfq-sched: Forcefully lookup entities when the cache is inconsistent 2016-11-23 09:06:52 -06:00
bfq.h block, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.4.0 2015-09-10 12:30:20 -05:00
blk-cgroup.c
blk-cgroup.h
blk-core.c BACKPORT: block: add blk_rq_set_block_pc() 2017-06-21 17:51:21 +02:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
blk-iopoll.c
blk-lib.c
blk-map.c
blk-merge.c
blk-settings.c
blk-softirq.c
blk-sysfs.c
blk-tag.c
blk-throttle.c
blk-timeout.c
blk.h
bsg-lib.c
bsg.c BACKPORT: block: add blk_rq_set_block_pc() 2017-06-21 17:51:21 +02:00
cfq-iosched.c block: Make CFQ default to IOPS mode on SSDs 2018-11-15 07:38:02 +03:00
cfq.h
compat_ioctl.c
deadline-iosched.c block: deadline: Optimize for non-rotational 2018-11-15 07:36:17 +03:00
elevator.c
genhd.c block: fix use-after-free in seq file 2016-11-08 09:11:35 -07:00
ioctl.c
noop-iosched.c
partition-generic.c
row-iosched.c
scsi_ioctl.c BACKPORT: block: add blk_rq_set_block_pc() 2017-06-21 17:51:21 +02:00
test-iosched.c