linux/block
Divyesh Shah 812df48d12 blkio: Add more debug-only per-cgroup stats
1) group_wait_time - This is the amount of time the cgroup had to wait to get a
  timeslice for one of its queues from when it became busy, i.e., went from 0
  to 1 request queued. This is different from the io_wait_time which is the
  cumulative total of the amount of time spent by each IO in that cgroup waiting
  in the scheduler queue. This stat is a great way to find out any jobs in the
  fleet that are being starved or waiting for longer than what is expected (due
  to an IO controller bug or any other issue).
2) empty_time - This is the amount of time a cgroup spends w/o any pending
   requests. This stat is useful when a job does not seem to be able to use its
   assigned disk share by helping check if that is happening due to an IO
   controller bug or because the job is not submitting enough IOs.
3) idle_time - This is the amount of time spent by the IO scheduler idling
   for a given cgroup in anticipation of a better request than the exising ones
   from other queues/cgroups.

All these stats are recorded using start and stop events. When reading these
stats, we do not add the delta between the current time and the last start time
if we're between the start and stop events. We avoid doing this to make sure
that these numbers are always monotonically increasing when read. Since we're
using sched_clock() which may use the tsc as its source, it may induce some
inconsistency (due to tsc resync across cpus) if we included the current delta.

Signed-off-by: Divyesh Shah<dpshah@google.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2010-04-09 08:36:08 +02:00
..
blk-barrier.c block: Honor the gfp_mask for alloc_page() in blkdev_issue_discard() 2009-12-29 08:53:54 +01:00
blk-cgroup.c blkio: Add more debug-only per-cgroup stats 2010-04-09 08:36:08 +02:00
blk-cgroup.h blkio: Add more debug-only per-cgroup stats 2010-04-09 08:36:08 +02:00
blk-core.c blkio: Add io_merged stat 2010-04-09 08:36:07 +02:00
blk-exec.c
blk-integrity.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
blk-ioc.c block: don't access jiffies when initialising io_context 2010-03-01 10:57:22 +01:00
blk-iopoll.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
blk-map.c
blk-merge.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
blk-settings.c block: Fix overrun in lcm() and move it to lib 2010-03-15 12:47:59 +01:00
blk-softirq.c
blk-sysfs.c Merge branch 'master' into for-linus 2010-03-19 08:05:10 +01:00
blk-tag.c block: use proper BLK_RW_ASYNC in blk_queue_start_tag() 2009-10-06 20:19:02 +02:00
blk-timeout.c
blk.h
bsg.c tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
cfq-iosched.c blkio: Add more debug-only per-cgroup stats 2010-04-09 08:36:08 +02:00
compat_ioctl.c block: Allow devices to indicate whether discarded blocks are zeroed 2009-12-03 09:24:48 +01:00
deadline-iosched.c
elevator.c blkio: Add io_merged stat 2010-04-09 08:36:07 +02:00
genhd.c block: Fix discard alignment calculation and printing 2010-01-11 14:29:19 +01:00
ioctl.c block: Allow devices to indicate whether discarded blocks are zeroed 2009-12-03 09:24:48 +01:00
Kconfig block: make CONFIG_BLK_CGROUP visible 2010-03-16 08:57:15 +01:00
Kconfig.iosched cgroups: blkio subsystem as module 2010-03-12 15:52:36 -08:00
Makefile blkio: Introduce blkio controller cgroup interface 2009-12-03 19:28:51 +01:00
noop-iosched.c
scsi_ioctl.c block/scsi_ioctl.c: quiet sparse noise 2009-11-04 09:10:33 +01:00