mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/7] I/O bandwidth controller and BIO tracking
@ 2008-08-04  8:51 Ryo Tsuruta
  2008-08-04  8:52 ` [PATCH 1/7] dm-ioband: Patch of device-mapper driver Ryo Tsuruta
  2008-08-04 17:20 ` Too many I/O controller patches Dave Hansen
  0 siblings, 2 replies; 80+ messages in thread
From: Ryo Tsuruta @ 2008-08-04  8:51 UTC (permalink / raw)
  To: linux-kernel, dm-devel, containers, virtualization, xen-devel; +Cc: agk

Hi everyone,

This series of patches of dm-ioband now includes "The bio tracking mechanism,"
which has been posted individually to this mailing list.
This makes it easy for anybody to control the I/O bandwidth even when
the I/O is one of delayed-write requests.
Have fun!

This series of patches consists of two parts:
  1. 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 physical device. A job is a group of processes
    with the same pid or pgrp or uid or a virtual machine such as KVM
    or Xen. A job can also be a cgroup by applying the bio-cgroup patch.
  2. 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.

The above two parts have been posted individually to this mailing list
until now, but after this time we would release them all together.

  [PATCH 1/7] dm-ioband: Patch of device-mapper driver
  [PATCH 2/7] dm-ioband: Documentation of design overview, installation,
                         command reference and examples.
  [PATCH 3/7] bio-cgroup: Introduction
  [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts
  [PATCH 5/7] bio-cgroup: Remove a lot of "#ifdef"s
  [PATCH 6/7] bio-cgroup: Implement the bio-cgroup
  [PATCH 7/7] 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] 80+ messages in thread
* [PATCH 3/7] bio-cgroup: Introduction
@ 2008-08-12 12:34 Ryo Tsuruta
  2008-08-12 12:35 ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Ryo Tsuruta
  0 siblings, 1 reply; 80+ messages in thread
From: Ryo Tsuruta @ 2008-08-12 12:34 UTC (permalink / raw)
  To: linux-kernel, dm-devel, containers, virtualization, xen-devel
  Cc: agk, balbir, xemul, kamezawa.hiroyu, fernando

With this series of bio-cgruop patches, you can determine the owners of any
type of I/Os and it makes dm-ioband -- I/O bandwidth controller --
be able to control the Block I/O bandwidths even when it accepts
delayed write requests.
Dm-ioband can find the owner cgroup of each request.
It is also possible that the other people who work on the I/O
bandwidth throttling use this functionality to control asynchronous
I/Os with a little enhancement.

You have to apply the patch dm-ioband v1.5.0 before applying this series
of patches.

And you have to select the following config options when compiling kernel:
  CONFIG_CGROUPS=y
  CONFIG_CGROUP_BIO=y
And I recommend you should also select the options for cgroup memory
subsystem, because it makes it possible to give some I/O bandwidth
and some memory to a certain cgroup to control delayed write requests
and the processes in the cgroup will be able to make pages dirty only
inside the cgroup even when the given bandwidth is narrow.
  CONFIG_RESOURCE_COUNTERS=y
  CONFIG_CGROUP_MEM_RES_CTLR=y

This code is based on some part of the memory subsystem of cgroup
and I don't think the accuracy and overhead of the subsystem can be ignored
at this time, so we need to keep tuning it up.

 --------------------------------------------------------

The following shows how to use dm-ioband with cgroups.
Please assume that you want make two cgroups, which we call "bio cgroup"
here, to track down block I/Os and assign them to ioband device "ioband1".

First, mount the bio cgroup filesystem.

 # mount -t cgroup -o bio none /cgroup/bio

Then, make new bio cgroups and put some processes in them.

 # mkdir /cgroup/bio/bgroup1
 # mkdir /cgroup/bio/bgroup2
 # echo 1234 > /cgroup/bio/bgroup1/tasks
 # echo 5678 > /cgroup/bio/bgroup1/tasks

Now, check the ID of each bio cgroup which is just created.

 # cat /cgroup/bio/bgroup1/bio.id
   1
 # cat /cgroup/bio/bgroup2/bio.id
   2

Finally, attach the cgroups to "ioband1" and assign them weights.

 # dmsetup message ioband1 0 type cgroup
 # dmsetup message ioband1 0 attach 1
 # dmsetup message ioband1 0 attach 2
 # dmsetup message ioband1 0 weight 1:30
 # dmsetup message ioband1 0 weight 2:60

You can also make use of the dm-ioband administration tool if you want.
The tool will be found here:
http://people.valinux.co.jp/~kaizuka/dm-ioband/iobandctl/manual.html
You can set up the device with the tool as follows.
In this case, you don't need to know the IDs of the cgroups.

 # iobandctl.py group /dev/mapper/ioband1 cgroup /cgroup/bio/bgroup1:30 /cgroup/bio/bgroup2:60

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

end of thread, other threads:[~2008-08-14 15:18 UTC | newest]

Thread overview: 80+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-04  8:51 [PATCH 0/7] I/O bandwidth controller and BIO tracking Ryo Tsuruta
2008-08-04  8:52 ` [PATCH 1/7] dm-ioband: Patch of device-mapper driver Ryo Tsuruta
2008-08-04  8:52   ` [PATCH 2/7] dm-ioband: Documentation of design overview, installation, command reference and examples Ryo Tsuruta
2008-08-04  8:57     ` [PATCH 3/7] bio-cgroup: Introduction Ryo Tsuruta
2008-08-04  8:57       ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Ryo Tsuruta
2008-08-04  8:59         ` [PATCH 5/7] bio-cgroup: Remove a lot of ifdefs Ryo Tsuruta
2008-08-04  9:00           ` [PATCH 6/7] bio-cgroup: Implement the bio-cgroup Ryo Tsuruta
2008-08-04  9:01             ` [PATCH 7/7] bio-cgroup: Add a cgroup support to dm-ioband Ryo Tsuruta
2008-08-08  7:10             ` [PATCH 6/7] bio-cgroup: Implement the bio-cgroup Takuya Yoshikawa
2008-08-08  8:30               ` Ryo Tsuruta
2008-08-08  9:42                 ` Takuya Yoshikawa
2008-08-08 11:41                   ` Ryo Tsuruta
2008-08-05 10:25         ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Andrea Righi
2008-08-05 10:35           ` Hirokazu Takahashi
2008-08-06  7:54         ` KAMEZAWA Hiroyuki
2008-08-06 11:43           ` Hirokazu Takahashi
2008-08-06 13:45           ` kamezawa.hiroyu
2008-08-07  7:25             ` Hirokazu Takahashi
2008-08-07  8:21               ` KAMEZAWA Hiroyuki
2008-08-07  8:45                 ` Hirokazu Takahashi
2008-08-04 17:20 ` Too many I/O controller patches Dave Hansen
2008-08-04 18:22   ` Andrea Righi
2008-08-04 19:02     ` Dave Hansen
2008-08-04 20:44       ` Andrea Righi
2008-08-04 20:50         ` Dave Hansen
2008-08-05  6:28           ` Hirokazu Takahashi
2008-08-05  5:55         ` Paul Menage
2008-08-05  6:03           ` Balbir Singh
2008-08-05  9:27           ` Andrea Righi
2008-08-05 16:25           ` Dave Hansen
2008-08-05  6:16         ` Hirokazu Takahashi
2008-08-05  9:31           ` Andrea Righi
2008-08-05 10:01             ` Hirokazu Takahashi
2008-08-05  2:50     ` Satoshi UCHIDA
2008-08-05  9:28       ` Andrea Righi
2008-08-05 13:17         ` Ryo Tsuruta
2008-08-05 16:20         ` Dave Hansen
2008-08-06  2:44           ` KAMEZAWA Hiroyuki
2008-08-06  3:30             ` Balbir Singh
2008-08-06  6:48             ` Hirokazu Takahashi
2008-08-05 12:01       ` Hirokazu Takahashi
2008-08-04 18:34   ` Balbir Singh
2008-08-04 20:42     ` Andrea Righi
2008-08-06  1:13   ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Fernando Luis Vázquez Cao
2008-08-06  6:18     ` RFC: I/O bandwidth controller Ryo Tsuruta
2008-08-06  6:41       ` Fernando Luis Vázquez Cao
2008-08-06 15:48         ` Dave Hansen
2008-08-07  4:38           ` Fernando Luis Vázquez Cao
2008-08-06 16:42     ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Balbir Singh
2008-08-06 18:00       ` Dave Hansen
2008-08-07  2:44       ` Fernando Luis Vázquez Cao
2008-08-07  3:01       ` Fernando Luis Vázquez Cao
2008-08-08 11:39         ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-12  5:35           ` Fernando Luis Vázquez Cao
2008-08-06 19:37     ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Naveen Gupta
2008-08-07  8:30       ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-07 13:17       ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Fernando Luis Vázquez Cao
2008-08-11 18:18         ` Naveen Gupta
2008-08-11 16:35           ` David Collier-Brown
2008-08-07  7:46     ` Andrea Righi
2008-08-07 13:59       ` Fernando Luis Vázquez Cao
2008-08-11 20:52         ` Andrea Righi
     [not found]           ` <loom.20080812T071504-212@post.gmane.org>
2008-08-12 11:10             ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-12 12:55               ` Andrea Righi
2008-08-12 13:07                 ` Andrea Righi
2008-08-12 13:54                   ` Fernando Luis Vázquez Cao
2008-08-12 15:03                     ` James.Smart
2008-08-12 21:00                       ` Andrea Righi
2008-08-12 20:44                     ` Andrea Righi
2008-08-13  7:47                       ` Dong-Jae Kang
2008-08-13 17:56                         ` Andrea Righi
2008-08-14 11:18                 ` David Collier-Brown
2008-08-12 13:15               ` Fernando Luis Vázquez Cao
2008-08-13  6:23               ` 강동재
2008-08-08  6:21     ` Hirokazu Takahashi
2008-08-08  7:20       ` Ryo Tsuruta
2008-08-08  8:10         ` Fernando Luis Vázquez Cao
2008-08-08 10:05           ` Ryo Tsuruta
2008-08-08 14:31       ` Hirokazu Takahashi
2008-08-12 12:34 [PATCH 3/7] bio-cgroup: Introduction Ryo Tsuruta
2008-08-12 12:35 ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Ryo Tsuruta
2008-08-12 12:36   ` [PATCH 5/7] bio-cgroup: Remove a lot of "#ifdef"s Ryo Tsuruta
2008-08-12 12:36     ` [PATCH 6/7] bio-cgroup: Implement the bio-cgroup Ryo Tsuruta

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

Powered by JetHome