public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] I/O bandwidth controller and BIO tracking
@ 2008-11-13  3:10 Ryo Tsuruta
  2008-11-13  3:11 ` [PATCH 1/8] dm-ioband: Introduction Ryo Tsuruta
  2008-11-13  6:30 ` [PATCH 0/8] I/O bandwidth controller and BIO tracking KAMEZAWA Hiroyuki
  0 siblings, 2 replies; 19+ messages in thread
From: Ryo Tsuruta @ 2008-11-13  3:10 UTC (permalink / raw)
  To: linux-kernel, dm-devel, containers, virtualization, xen-devel
  Cc: agk, balbir, xemul, kamezawa.hiroyu, fernando

Hi everyone,

This is a new release of dm-ioband and bio-cgroup. With this release,
the overhead of bio-cgroup is significantly reduced and the accuracy
of block I/O tracking is much improved. These patches are for
2.6.28-rc2-mm1.

Enjoy it!

dm-ioband
=========

Dm-ioband is an I/O bandwidth controller implemented as a
device-mapper driver, which gives specified bandwidth to each job
running on the same block device. A job is a group of processes
or a virtual machine such as KVM or Xen. 
I/O throughput on dm-ioband is excellent not only on SATA storage
but on SDD, which as good as the one without dm-ioband.

Changes from the previous release:
  - Fix a bug that create_workqueue() is called during spin lock
    when creating a new ioband group.
  - A new tunable parameter "carryover" is added, which specifies
    how many tokens an ioband group can keep for the future use
    when the group isn't so active.

TODO:
  - Other policies to schedule BIOs.
    - Policies which fits SSD.
     e.g.)
       - Guarantee response time.
       - Guarantee throughput.
    - Policies which fits Highend Storage or hardware raid storage.
       - Some LUNs may share the same bandwidth.
  - Support WRITE_BARRIER when the device-mapper layer supports it.
  - Implement the algorithm of dm-ioband in the block I/O layer
    experimentally.

bio-cgroup
==========

Bio-cgroup is a BIO tracking mechanism, which is implemented on the
cgroup memory subsystem. With the mechanism, it is able to determine
which cgroup each of bio belongs to, even when the bio is one of
delayed-write requests issued from a kernel thread such as pdflush.

Changes from the previous release:
  - This release is a new implementation.
  - This is based on the new design of the cgroup memory controller
    framework, which pre-allocates all cgroup-page data structures to
    reduce the overhead.
  - The overhead to trace block I/O requests is much smaller than that
    of the previous one. This is done by making every page have the id
    of its corresponding bio-cgroup instead of the pointer to it and
    most of spin-locks and atomic operations are gone.
  - This implementation uses only 4 bytes per page for I/O tracking
    while the previous version uses 12 bytes on a 32 bit machine and 24
    bytes on a 64 bit machine.
  - The accuracy of I/O tracking is improved that it can trace I/O
    requests even when the processes which issued these requests get
    moved into another bio-cgroup.
  - Support bounce buffers tracking. They will have the same bio-cgroup
    owners as the original I/O requests.

TODO:
  - Support to track I/O requests that will be generated in Linux
    kernel, such as those of RAID0 and RAID5.

A list of patches
=================

The following is a list of patches:

  [PATCH 0/8] I/O bandwidth controller and BIO tracking
  [PATCH 1/8] dm-ioband: Introduction
  [PATCH 2/8] dm-ioband: Source code and patch
  [PATCH 3/8] dm-ioband: Document
  [PATCH 4/8] bio-cgroup: Introduction
  [PATCH 5/8] bio-cgroup: The new page_cgroup framework
  [PATCH 6/8] bio-cgroup: The body of bio-cgroup
  [PATCH 7/8] bio-cgroup: Page tracking hooks
  [PATCH 8/8] bio-cgroup: Add a cgroup support to dm-ioband

Please see the following site for more information:
  Linux Block I/O Bandwidth Control Project
  http://people.valinux.co.jp/~ryov/bwctl/

Thanks,
Ryo Tsuruta

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-11-17  7:48 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-13  3:10 [PATCH 0/8] I/O bandwidth controller and BIO tracking Ryo Tsuruta
2008-11-13  3:11 ` [PATCH 1/8] dm-ioband: Introduction Ryo Tsuruta
2008-11-13  3:12   ` [PATCH 2/8] dm-ioband: Source code and patch Ryo Tsuruta
2008-11-13  3:12     ` [PATCH 3/8] dm-ioband: Document Ryo Tsuruta
2008-11-13  3:13       ` [PATCH 4/8] bio-cgroup: Introduction Ryo Tsuruta
2008-11-13  3:13         ` [PATCH 5/8] bio-cgroup: The new page_cgroup framework Ryo Tsuruta
2008-11-13  3:14           ` [PATCH 6/8] bio-cgroup: The body of bio-cgroup Ryo Tsuruta
2008-11-13  3:15             ` [PATCH 7/8] bio-cgroup: Page tracking hooks Ryo Tsuruta
2008-11-13  3:15               ` [PATCH 8/8] bio-cgroup: Add a cgroup support to dm-ioband Ryo Tsuruta
2008-11-14  7:01             ` [PATCH 6/8] bio-cgroup: The body of bio-cgroup Takuya Yoshikawa
2008-11-16 11:46               ` Hirokazu Takahashi
2008-11-17  7:50                 ` [PATCH 6/8]Re: " Takuya Yoshikawa
2008-11-13 19:36   ` [dm-devel] [PATCH 1/8] dm-ioband: Introduction Phillip Susi
2008-11-13 23:18     ` Hirokazu Takahashi
2008-11-14  1:38       ` Ryo Tsuruta
2008-11-13  6:30 ` [PATCH 0/8] I/O bandwidth controller and BIO tracking KAMEZAWA Hiroyuki
2008-11-13  7:26   ` [dm-devel] " Hirokazu Takahashi
2008-11-13 16:20     ` Balbir Singh
2008-11-13 23:15       ` Hirokazu Takahashi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox