mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Divyesh Shah <dpshah@google.com>
To: jens.axboe@oracle.com, vgoyal@redhat.com
Cc: linux-kernel@vger.kernel.org, nauman@google.com, ctalbott@google.com
Subject: [PATCH 0/3][v2] blkio: IO controller stats
Date: Fri, 02 Apr 2010 18:54:40 -0700	[thread overview]
Message-ID: <20100403014724.30746.16081.stgit@austin.mtv.corp.google.com> (raw)

The following series implements some additional stats for IO controller.

These stats have helped us debug issues with earlier IO controller
versions and should be useful now as well.
We've been using these stats for monitoring and debugging problems after the
fact as these stats can be collected and stored for later use.

One might argue that most of this information can be exported using blktrace
when debugging. However, blktrace has non-trivial performance impact and
cannot be always turned on. These stats provide a way for continuous monitoring
without losing much performance on rotational disks. We've been able to look
at these stats and debug issues after problems have been reported in the wild
and understand the IO pattern of the affected workloads.
Some of these stats are also a good data source for high-level analysis and
capacity planning.

This patchset adds 4 stats and I will send out another patchset later for
stats like io_merged and some stats that can be turned on only for
debugging - idle_time (total time spent idling for this blkio_group),
wait_time (total time spent by the blkio_group waiting before any one of its
queues got a timeslice). I've tried to breakdown the stats and sent the most
basic ones here.

Changelog from v1 (most based on Vivek Goyal's comments):
o blkio.time now exports in jiffies as before
o Added stats description in patch description and
  Documentation/cgroup/blkio-controller.txt
o Prefix all stats functions with blkio and make them static as applicable
o replace IO_TYPE_MAX with IO_TYPE_TOTAL
o Moved #define constant to top of blk-cgroup.c
o Pass dev_t around instead of char *
o Add note to documentation file about resetting stats
o use BLK_CGROUP_MODULE in addition to BLK_CGROUP config option in #ifdef
  statements
o Avoid struct request specific knowledge in blk-cgroup. blk-cgroup.h now has
  rq_direction() and rq_sync() functions which are used by CFQ and when using
  io-controller at a higher level, bio_* functions can be added.
---

Divyesh Shah (3):
      Increment the blkio cgroup stats for real now.
      Add io controller stats like
      Remove per-cfqq nr_sectors as we'll be passing that info at request dispatch


 Documentation/cgroups/blkio-controller.txt |   33 ++++
 block/blk-cgroup.c                         |  229 ++++++++++++++++++++++++++--
 block/blk-cgroup.h                         |   74 +++++++--
 block/blk-core.c                           |    6 -
 block/cfq-iosched.c                        |   16 +-
 include/linux/blkdev.h                     |   38 +++++
 6 files changed, 352 insertions(+), 44 deletions(-)

-- 
Divyesh

             reply	other threads:[~2010-04-03  1:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-03  1:54 Divyesh Shah [this message]
2010-04-03  1:55 ` [PATCH 1/3][v2] blkio: Remove per-cfqq nr_sectors as we'll be passing Divyesh Shah
2010-04-05 15:47   ` Vivek Goyal
2010-04-05 16:57     ` Divyesh Shah
2010-04-05 17:05       ` Vivek Goyal
2010-04-03  1:56 ` [PATCH 2/3][v2] blkio: Add io controller stats like Divyesh Shah
2010-04-03  1:59   ` Divyesh Shah
2010-04-05 16:06   ` Vivek Goyal
2010-04-05 23:29     ` Divyesh Shah
2010-04-06 13:47       ` Vivek Goyal
2010-04-06 17:00         ` Divyesh Shah
2010-04-05 18:58   ` Vivek Goyal
2010-04-05 22:17     ` Divyesh Shah
2010-04-03  1:57 ` [PATCH 3/3][v2] blkio: Increment the blkio cgroup stats for real now Divyesh Shah
2010-04-05 18:12   ` Vivek Goyal
2010-04-05 22:10     ` Divyesh Shah

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100403014724.30746.16081.stgit@austin.mtv.corp.google.com \
    --to=dpshah@google.com \
    --cc=ctalbott@google.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nauman@google.com \
    --cc=vgoyal@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®