linux/block
Omar Sandoval b57e99b4b8 block: use nanosecond resolution for iostat
Klaus Kusche reported that the I/O busy time in /proc/diskstats was not
updating properly on 4.18. This is because we started using ktime to
track elapsed time, and we convert nanoseconds to jiffies when we update
the partition counter. However, this gets rounded down, so any I/Os that
take less than a jiffy are not accounted for. Previously in this case,
the value of jiffies would sometimes increment while we were doing I/O,
so at least some I/Os were accounted for.

Let's convert the stats to use nanoseconds internally. We still report
milliseconds as before, now more accurately than ever. The value is
still truncated to 32 bits for backwards compatibility.

Fixes: 522a777566 ("block: consolidate struct request timestamp fields")
Cc: stable@vger.kernel.org
Reported-by: Klaus Kusche <klaus.kusche@computerix.info>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-09-21 20:26:59 -06:00
..
partitions
badblocks.c
bfq-cgroup.c block: bfq: swap puts in bfqg_and_blkg_put 2018-09-06 11:32:58 -06:00
bfq-iosched.c block, bfq: reduce write overcharge 2018-08-16 13:08:13 -06:00
bfq-iosched.h
bfq-wf2q.c block, bfq: improve code of bfq_bfqq_charge_time 2018-08-16 13:08:15 -06:00
bio-integrity.c
bio.c block: use nanosecond resolution for iostat 2018-09-21 20:26:59 -06:00
blk-cgroup.c blk-cgroup: increase number of supported policies 2018-09-11 10:59:53 -06:00
blk-core.c block: use nanosecond resolution for iostat 2018-09-21 20:26:59 -06:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
blk-iolatency.c
blk-lib.c
blk-map.c
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs-zoned.c
blk-mq-debugfs.c
blk-mq-debugfs.h
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c blk-mq: init hctx sched after update ctx and hctx mapping 2018-08-21 09:02:55 -06:00
blk-mq-sched.h blk-mq: init hctx sched after update ctx and hctx mapping 2018-08-21 09:02:55 -06:00
blk-mq-sysfs.c
blk-mq-tag.c for-4.19/post-20180822 2018-08-22 13:38:05 -07:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c for-4.19/post-20180822 2018-08-22 13:38:05 -07:00
blk-mq.h
blk-rq-qos.c
blk-rq-qos.h
blk-settings.c
blk-softirq.c
blk-stat.c
blk-stat.h
blk-sysfs.c blk-wbt: don't maintain inflight counts if disabled 2018-08-23 09:34:46 -06:00
blk-tag.c
blk-throttle.c blkcg: use tryget logic when associating a blkg with a bio 2018-08-31 14:48:58 -06:00
blk-timeout.c
blk-wbt.c blk-wbt: remove dead code 2018-08-27 13:32:12 -06:00
blk-wbt.h
blk-zoned.c
blk.h blk-mq: init hctx sched after update ctx and hctx mapping 2018-08-21 09:02:55 -06:00
bounce.c
bsg-lib.c
bsg.c block: bsg: move atomic_t ref_count variable to refcount API 2018-08-27 19:17:02 -06:00
cfq-iosched.c cfq: Suppress compiler warnings about comparisons 2018-08-07 17:57:13 -06:00
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
elevator.c block: remove unnecessary condition check 2018-08-27 19:16:06 -06:00
genhd.c block: use nanosecond resolution for iostat 2018-09-21 20:26:59 -06:00
ioctl.c
ioprio.c
Kconfig
Kconfig.iosched
kyber-iosched.c
Makefile
mq-deadline.c
noop-iosched.c
opal_proto.h
partition-generic.c block: use nanosecond resolution for iostat 2018-09-21 20:26:59 -06:00
scsi_ioctl.c
sed-opal.c
t10-pi.c