linux/Documentation/block
Luca Miccio a33801e8b4 block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP
BFQ currently creates, and updates, its own instance of the whole
set of blkio statistics that cfq creates. Yet, from the comments
of Tejun Heo in [1], it turned out that most of these statistics
are meant/useful only for debugging. This commit makes BFQ create
the latter, debugging statistics only if the option
CONFIG_DEBUG_BLK_CGROUP is set.

By doing so, this commit also enables BFQ to enjoy a high perfomance
boost. The reason is that, if CONFIG_DEBUG_BLK_CGROUP is not set, then
BFQ has to update far fewer statistics, and, in particular, not the
heaviest to update.  To give an idea of the benefits, if
CONFIG_DEBUG_BLK_CGROUP is not set, then, on an Intel i7-4850HQ, and
with 8 threads doing random I/O in parallel on null_blk (configured
with 0 latency), the throughput of BFQ grows from 310 to 400 KIOPS
(+30%). We have measured similar or even much higher boosts with other
CPUs: e.g., +45% with an ARM CortexTM-A53 Octa-core. Our results have
been obtained and can be reproduced very easily with the script in [1].

[1] https://www.spinics.net/lists/linux-block/msg18943.html

Suggested-by: Tejun Heo <tj@kernel.org>
Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Lee Tibbert <lee.tibbert@gmail.com>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Luca Miccio <lucmiccio@gmail.com>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2017-11-14 20:13:33 -07:00
..
00-INDEX block, bfq: introduce the BFQ-v0 I/O scheduler as an extra scheduler 2017-04-19 08:29:02 -06:00
bfq-iosched.txt block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP 2017-11-14 20:13:33 -07:00
biodoc.txt block: remove __bio_kmap_atomic 2017-11-10 19:53:25 -07:00
biovecs.txt Documentation: update notes in biovecs about arbitrarily sized bios 2015-08-13 12:32:07 -06:00
capability.txt genhd: expose AN to user space 2007-05-23 20:14:11 -07:00
cfq-iosched.txt block: replace REQ_NOIDLE with REQ_IDLE 2016-11-01 09:43:26 -06:00
cmdline-partition.txt block: change config option name for cmdline partition parsing 2013-09-30 14:31:02 -07:00
data-integrity.txt bio-integrity: fold bio_integrity_enabled to bio_integrity_prep 2017-07-03 16:56:24 -06:00
deadline-iosched.txt trivial: Miscellaneous documentation typo fixes 2009-06-12 18:01:47 +02:00
ioprio.txt Update Jens Axboe's email in Documentation/* 2007-10-16 09:59:55 +02:00
kyber-iosched.txt blk-mq: introduce Kyber multiqueue I/O scheduler 2017-04-14 14:06:58 -06:00
null_blk.txt null_blk: add an usage for shared tags in documentation 2017-11-07 09:25:37 -07:00
pr.txt Doc: Fix double words in Documentation 2017-01-26 15:25:41 -07:00
queue-sysfs.txt block: remove the discard_zeroes_data flag 2017-04-08 11:25:38 -06:00
request.txt Update Jens Axboe's email in Documentation/* 2007-10-16 09:59:55 +02:00
stat.txt
switching-sched.txt Documentation: drop as block elevator reference in switching-sched.txt 2011-11-04 12:01:48 -07:00
writeback_cache_control.txt block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH 2016-06-07 13:41:38 -06:00