Dennis Zhou (Facebook)
c480bcf97b
block: make iolatency avg_lat exponentially decay
...
Currently, avg_lat is calculated by accumulating the mean of every
window in a long running cumulative average. As time goes on, the metric
becomes less and less useful due to the accumulated history.
This patch reuses the same calculation done in load averages to make the
avg_lat metric more lively. Unlike load averages, the avg only advances
when a window elapses (due to an io). Idle periods extend the most
recent window. Bucketing is used to limit the history of avg_lat by
binding it to the window size. So, the window range for 1/exp (decay
rate) is [1 min, 2.5 min) when windows elapse immediately.
The current sample window size is exposed in the debug info to enable
calculation of the window range.
Signed-off-by: Dennis Zhou <dennisszhou@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-08-02 09:58:14 -06:00
..
partitions
partitions/aix: append null character to print data from disk
2018-07-27 09:17:41 -06:00
badblocks.c
bfq-cgroup.c
block: use ktime_get_ns() instead of sched_clock() for cfq and bfq
2018-05-09 08:33:06 -06:00
bfq-iosched.c
block, bfq: give a better name to bfq_bfqq_may_idle
2018-07-09 09:07:52 -06:00
bfq-iosched.h
block, bfq: add/remove entity weights correctly
2018-07-09 09:07:52 -06:00
bfq-wf2q.c
block, bfq: fix service being wrongly set to zero in case of preemption
2018-07-09 09:07:52 -06:00
bio-integrity.c
block: move bio_integrity_{intervals,bytes} into blkdev.h
2018-07-26 15:49:41 -06:00
bio.c
block: unexport bio_clone_bioset
2018-07-24 14:43:26 -06:00
blk-cgroup.c
blk-cgroup: hold the queue ref during throttling
2018-08-01 09:16:03 -06:00
blk-core.c
block: blk_init_allocated_queue() set q->fq as NULL in the fail case
2018-07-30 08:28:39 -06:00
blk-exec.c
blk-mq-sched: remove unused 'can_block' arg from blk_mq_sched_insert_request
2018-01-17 09:49:21 -07:00
blk-flush.c
block: fix use-after-free in block flush handling
2018-06-09 06:37:14 -06:00
blk-integrity.c
block drivers/block: Use octal not symbolic permissions
2018-05-24 13:38:59 -06:00
blk-ioc.c
block, mm: remove unnecessary __GFP_HIGH flag
2018-07-09 09:07:54 -06:00
blk-iolatency.c
block: make iolatency avg_lat exponentially decay
2018-08-02 09:58:14 -06:00
blk-lib.c
block: fix infinite loop if the device loses discard capability
2018-07-09 09:07:54 -06:00
blk-map.c
Merge branch 'for-4.16/block' of git://git.kernel.dk/linux-block
2018-01-29 11:51:49 -08:00
blk-merge.c
block: don't use blocking queue entered for recursive bio submits
2018-06-02 20:35:00 -06:00
blk-mq-cpumap.c
blk-mq: don't keep offline CPUs mapped to hctx 0
2018-04-10 08:38:46 -06:00
blk-mq-debugfs-zoned.c
block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n
2018-07-09 09:07:52 -06:00
blk-mq-debugfs.c
blk-mq: dequeue request one by one from sw queue if hctx is busy
2018-07-09 09:07:53 -06:00
blk-mq-debugfs.h
block: Make struct request_queue smaller for CONFIG_BLK_DEV_ZONED=n
2018-07-09 09:07:52 -06:00
blk-mq-pci.c
blk-mq: code clean-up by adding an API to clear set->mq_map
2018-07-09 09:07:53 -06:00
blk-mq-rdma.c
blk-mq-sched.c
blk-mq: issue directly if hw queue isn't busy in case of 'none'
2018-07-17 16:04:00 -06:00
blk-mq-sched.h
block: move sysfs_lock into elevator_init
2018-06-01 07:38:19 -06:00
blk-mq-sysfs.c
block drivers/block: Use octal not symbolic permissions
2018-05-24 13:38:59 -06:00
blk-mq-tag.c
blk-mq: remove blk_mq_tagset_iter
2018-06-14 17:01:45 +02:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c
blk-mq: fail the request in case issue failure
2018-07-22 17:31:18 -06:00
blk-mq.h
blk-mq: issue directly if hw queue isn't busy in case of 'none'
2018-07-17 16:04:00 -06:00
blk-rq-qos.c
blk-rq-qos: make depth comparisons unsigned
2018-07-22 11:30:53 -06:00
blk-rq-qos.h
blk-rq-qos: make depth comparisons unsigned
2018-07-22 11:30:53 -06:00
blk-settings.c
block: allow max_discard_segments to be stacked
2018-07-24 14:46:39 -06:00
blk-softirq.c
block: fix timeout changes for legacy request drivers
2018-06-19 11:27:18 -06:00
blk-stat.c
blk-stat: export helpers for modifying blk_rq_stat
2018-07-09 09:07:54 -06:00
blk-stat.h
blk-stat: export helpers for modifying blk_rq_stat
2018-07-09 09:07:54 -06:00
blk-sysfs.c
blk-rq-qos: refactor out common elements of blk-wbt
2018-07-09 09:07:54 -06:00
blk-tag.c
for-linus-20180616
2018-06-17 05:37:55 +09:00
blk-throttle.c
block: add bi_blkg to the bio for cgroups
2018-07-09 09:07:53 -06:00
blk-timeout.c
blk-mq: Fix timeout handling in case the timeout handler returns BLK_EH_DONE
2018-06-23 10:25:45 -06:00
blk-wbt.c
block: remove external dependency on wbt_flags
2018-07-09 09:07:54 -06:00
blk-wbt.h
block: remove external dependency on wbt_flags
2018-07-09 09:07:54 -06:00
blk-zoned.c
block: Remove a superfluous cast from blkdev_report_zones()
2018-07-09 09:07:52 -06:00
blk.h
block: introduce blk-iolatency io controller
2018-07-09 09:07:54 -06:00
bounce.c
block: unexport bio_clone_bioset
2018-07-24 14:43:26 -06:00
bsg-lib.c
block/bsg-lib: use PTR_ERR_OR_ZERO to simplify the flow path
2018-08-01 09:13:03 -06:00
bsg.c
bsg: remove read/write support
2018-07-12 08:04:08 -06:00
cfq-iosched.c
block drivers/block: Use octal not symbolic permissions
2018-05-24 13:38:59 -06:00
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
block drivers/block: Use octal not symbolic permissions
2018-05-24 13:38:59 -06:00
elevator.c
block: split the blk-mq case from elevator_init
2018-06-01 07:38:21 -06:00
genhd.c
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
ioctl.c
block: pass inclusive 'lend' parameter to truncate_inode_pages_range
2018-02-23 15:20:19 -07:00
ioprio.c
block: add ioprio_check_cap function
2018-05-31 10:50:54 -04:00
Kconfig
block: introduce blk-iolatency io controller
2018-07-09 09:07:54 -06:00
Kconfig.iosched
kyber-iosched.c
block: kyber: make kyber more friendly with merging
2018-05-30 10:47:40 -06:00
Makefile
block: introduce blk-iolatency io controller
2018-07-09 09:07:54 -06:00
mq-deadline.c
block drivers/block: Use octal not symbolic permissions
2018-05-24 13:38:59 -06:00
noop-iosched.c
opal_proto.h
partition-generic.c
block: Track DISCARD statistics and output them in stat and diskstat
2018-07-18 08:44:22 -06:00
scsi_ioctl.c
block: consistently use GFP_NOIO instead of __GFP_NORECLAIM
2018-05-14 08:55:18 -06:00
sed-opal.c
block: sed-opal: Fix a couple off by one bugs
2018-06-20 12:04:06 -06:00
t10-pi.c
block: move dif_prepare/dif_complete functions to block layer
2018-07-30 08:27:02 -06:00