From: Vivek Goyal <vgoyal@redhat.com>
To: Ryo Tsuruta <ryov@valinux.co.jp>
Cc: riel@redhat.com, guijianfeng@cn.fujitsu.com,
linux-kernel@vger.kernel.org, jmoyer@redhat.com,
dm-devel@redhat.com, jens.axboe@oracle.com, nauman@google.com,
akpm@linux-foundation.org, agk@redhat.com,
balbir@linux.vnet.ibm.com
Subject: Re: Regarding dm-ioband tests
Date: Wed, 9 Sep 2009 09:34:27 -0400 [thread overview]
Message-ID: <20090909133427.GA8256@redhat.com> (raw)
In-Reply-To: <20090909.141748.189706141.ryov@valinux.co.jp>
On Wed, Sep 09, 2009 at 02:17:48PM +0900, Ryo Tsuruta wrote:
> Hi Vivek,
>
> Vivek Goyal <vgoyal@redhat.com> wrote:
> > > It is not necessary when controlling bandwidth on a per partition
> > > basis or on a IO thread basis like Xen blkback kernel thread.
> > >
> > > Here are configration examples.
> > > http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband/man/examples
> > >
> >
> > For partition based control, where a thread or group of threads is doing
> > IO to a specific parition, why can't you simply create different cgroups
> > for each partition and move threads in those partitions.
> >
> >
> > root
> > / | \
> > sda1 sda2 sda3
> >
> > Above are three groups and move threads doing IO into those groups and
> > problem is solved. In fact that's what one will do for KVM virtual
> > machines. Move all the qemu helper threds doing IO for a virtual machine
> > instance into a specific group and control the IO.
> >
> > Why do you have to come up with additional complicated grouping mechanism?
>
> I don't get why you think it's complicated, your io-controller also
> provides the same grouping machanism which assigns bandwidth per
> device by io.policy file. What's the difference?
I am using purely cgroup based interface. This makes life easier for user
space tools and libraries like libcgroup and should also help libvirt. Now
they can treat all the resource controllers in kernel in a uniform way
(through cgroup interface).
With-in cgroups, there are controller specific files and libcgroup is
aware of that. So libcgroup can be modified to take care of special
syntax of io.policy file. But this is not too big a deviation in overall
picture.
dm-ioband is coming up with a whole new way of configuring and managing
groups and now these user space tools shall have to be modified to take
care of this new way only for io controller.
The point is there is no need. You seem to be introducing this new
interface because you want to use this module with RHEL5 which does not
have cgroup support.
I think this is hard to sell argument that upstream should also introduce
a new interface just because one wants to use the module with older
releases of kernel which did not have cgroup support.
Taking this new interface solves your case but will make life harder for user
space tools, libraries and applications making use of cgroups and various
resource controllers.
> The thread grouping
> machianism is also not special, it is the same concept as cgroup.
> These mechanisms are necessary to make use of dm-ioband on the systems
> which doesn't support cgroup such as RHEL 5.x. As you know, dm-ioband
> also supports cgroup, the configurations you mentioned above can apply
> to the system by dm-ioband.
dm-ioband also supports cgroup but there is additional step required and
that is passing all the cgroup ids to various ioband devices. This
requires knowledge of all the ioband devices and how these have been
created and usage of dm tools.
The only place where it helps a bit is that once the configuration is
done, one can move the tasks in groups to arbitrarily group them instead
of grouping these on pid, gid etc....
So it still does not solve the issue of dm-ioband being so different from
rest of the controllers and introducing a new interface for creation and
management of groups.
> I think it's not bad to have several ways
> to setup.
It is not bad if there is a proper justification for new interface and why
existing standard mechanism does not meet that requirement.
In this case you are saying that in general cgroup mechanism is sufficient
to take care of grouping of tasks but it is not available in older kernels
hence let us introduce a new interface in upstream kernels. I think this does
not work. This brings in unnecessary overhead of maintaining anohter interface
for upstream and upstream does not benefit from this interface.
Thanks
Vivek
WARNING: multiple messages have this Message-ID (diff)
From: Vivek Goyal <vgoyal@redhat.com>
To: Ryo Tsuruta <ryov@valinux.co.jp>
Cc: balbir@linux.vnet.ibm.com, riel@redhat.com,
linux-kernel@vger.kernel.org, dm-devel@redhat.com,
jens.axboe@oracle.com, agk@redhat.com, akpm@linux-foundation.org,
nauman@google.com, guijianfeng@cn.fujitsu.com, jmoyer@redhat.com
Subject: Re: Regarding dm-ioband tests
Date: Wed, 9 Sep 2009 09:34:27 -0400 [thread overview]
Message-ID: <20090909133427.GA8256@redhat.com> (raw)
In-Reply-To: <20090909.141748.189706141.ryov@valinux.co.jp>
On Wed, Sep 09, 2009 at 02:17:48PM +0900, Ryo Tsuruta wrote:
> Hi Vivek,
>
> Vivek Goyal <vgoyal@redhat.com> wrote:
> > > It is not necessary when controlling bandwidth on a per partition
> > > basis or on a IO thread basis like Xen blkback kernel thread.
> > >
> > > Here are configration examples.
> > > http://sourceforge.net/apps/trac/ioband/wiki/dm-ioband/man/examples
> > >
> >
> > For partition based control, where a thread or group of threads is doing
> > IO to a specific parition, why can't you simply create different cgroups
> > for each partition and move threads in those partitions.
> >
> >
> > root
> > / | \
> > sda1 sda2 sda3
> >
> > Above are three groups and move threads doing IO into those groups and
> > problem is solved. In fact that's what one will do for KVM virtual
> > machines. Move all the qemu helper threds doing IO for a virtual machine
> > instance into a specific group and control the IO.
> >
> > Why do you have to come up with additional complicated grouping mechanism?
>
> I don't get why you think it's complicated, your io-controller also
> provides the same grouping machanism which assigns bandwidth per
> device by io.policy file. What's the difference?
I am using purely cgroup based interface. This makes life easier for user
space tools and libraries like libcgroup and should also help libvirt. Now
they can treat all the resource controllers in kernel in a uniform way
(through cgroup interface).
With-in cgroups, there are controller specific files and libcgroup is
aware of that. So libcgroup can be modified to take care of special
syntax of io.policy file. But this is not too big a deviation in overall
picture.
dm-ioband is coming up with a whole new way of configuring and managing
groups and now these user space tools shall have to be modified to take
care of this new way only for io controller.
The point is there is no need. You seem to be introducing this new
interface because you want to use this module with RHEL5 which does not
have cgroup support.
I think this is hard to sell argument that upstream should also introduce
a new interface just because one wants to use the module with older
releases of kernel which did not have cgroup support.
Taking this new interface solves your case but will make life harder for user
space tools, libraries and applications making use of cgroups and various
resource controllers.
> The thread grouping
> machianism is also not special, it is the same concept as cgroup.
> These mechanisms are necessary to make use of dm-ioband on the systems
> which doesn't support cgroup such as RHEL 5.x. As you know, dm-ioband
> also supports cgroup, the configurations you mentioned above can apply
> to the system by dm-ioband.
dm-ioband also supports cgroup but there is additional step required and
that is passing all the cgroup ids to various ioband devices. This
requires knowledge of all the ioband devices and how these have been
created and usage of dm tools.
The only place where it helps a bit is that once the configuration is
done, one can move the tasks in groups to arbitrarily group them instead
of grouping these on pid, gid etc....
So it still does not solve the issue of dm-ioband being so different from
rest of the controllers and introducing a new interface for creation and
management of groups.
> I think it's not bad to have several ways
> to setup.
It is not bad if there is a proper justification for new interface and why
existing standard mechanism does not meet that requirement.
In this case you are saying that in general cgroup mechanism is sufficient
to take care of grouping of tasks but it is not available in older kernels
hence let us introduce a new interface in upstream kernels. I think this does
not work. This brings in unnecessary overhead of maintaining anohter interface
for upstream and upstream does not benefit from this interface.
Thanks
Vivek
next prev parent reply other threads:[~2009-09-09 13:34 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-01 16:50 Regarding dm-ioband tests Vivek Goyal
2009-09-01 16:50 ` Vivek Goyal
2009-09-01 17:47 ` Vivek Goyal
2009-09-01 17:47 ` Vivek Goyal
2009-09-03 13:11 ` Vivek Goyal
2009-09-03 13:11 ` Vivek Goyal
2009-09-04 1:12 ` Ryo Tsuruta
2009-09-15 21:40 ` dm-ioband fairness in terms of sectors seems to be killing disk (Was: Re: Regarding dm-ioband tests) Vivek Goyal
2009-09-15 21:40 ` Vivek Goyal
2009-09-16 11:10 ` dm-ioband fairness in terms of sectors seems to be killing disk Ryo Tsuruta
2009-09-16 11:10 ` Ryo Tsuruta
2009-09-04 4:02 ` Regarding dm-ioband tests Ryo Tsuruta
2009-09-04 4:02 ` Ryo Tsuruta
2009-09-04 23:11 ` Vivek Goyal
2009-09-04 23:11 ` Vivek Goyal
2009-09-07 11:02 ` Ryo Tsuruta
2009-09-07 11:02 ` Ryo Tsuruta
2009-09-07 13:53 ` Rik van Riel
2009-09-07 13:53 ` Rik van Riel
2009-09-08 3:01 ` Ryo Tsuruta
2009-09-08 3:01 ` Ryo Tsuruta
2009-09-08 3:22 ` Balbir Singh
2009-09-08 3:22 ` Balbir Singh
2009-09-08 5:05 ` Ryo Tsuruta
2009-09-08 5:05 ` Ryo Tsuruta
2009-09-08 13:49 ` Vivek Goyal
2009-09-08 13:49 ` Vivek Goyal
2009-09-09 5:17 ` Ryo Tsuruta
2009-09-09 5:17 ` Ryo Tsuruta
2009-09-09 13:34 ` Vivek Goyal [this message]
2009-09-09 13:34 ` Vivek Goyal
2009-09-08 13:42 ` Vivek Goyal
2009-09-08 13:42 ` Vivek Goyal
2009-09-08 16:30 ` Nauman Rafique
2009-09-08 16:30 ` Nauman Rafique
2009-09-08 16:47 ` Rik van Riel
2009-09-08 16:47 ` Rik van Riel
2009-09-08 17:54 ` Vivek Goyal
2009-09-08 17:54 ` Vivek Goyal
2009-09-15 23:37 ` ioband: Writer starves reader even without competitors (Re: Regarding dm-ioband tests) Vivek Goyal
2009-09-15 23:37 ` Vivek Goyal
2009-09-16 12:08 ` ioband: Writer starves reader even without competitors Ryo Tsuruta
2009-09-08 17:06 ` Regarding dm-ioband tests Dhaval Giani
2009-09-09 6:05 ` Ryo Tsuruta
2009-09-09 6:05 ` Ryo Tsuruta
2009-09-09 10:51 ` Dhaval Giani
2009-09-10 7:58 ` Ryo Tsuruta
2009-09-10 7:58 ` Ryo Tsuruta
2009-09-11 9:53 ` Dhaval Giani
2009-09-15 15:12 ` Ryo Tsuruta
2009-09-15 15:12 ` Ryo Tsuruta
2009-09-15 15:19 ` Balbir Singh
2009-09-15 15:19 ` Balbir Singh
2009-09-15 15:58 ` Rik van Riel
2009-09-15 15:58 ` Rik van Riel
2009-09-15 16:21 ` Ryo Tsuruta
2009-09-15 16:21 ` Ryo Tsuruta
2009-09-09 13:57 ` Vivek Goyal
2009-09-09 13:57 ` Vivek Goyal
2009-09-10 3:06 ` Ryo Tsuruta
2009-09-09 10:01 ` Ryo Tsuruta
2009-09-09 14:31 ` Vivek Goyal
2009-09-09 14:31 ` Vivek Goyal
2009-09-10 3:45 ` Ryo Tsuruta
2009-09-10 13:25 ` Vivek Goyal
2009-09-10 13:25 ` Vivek Goyal
2009-09-08 19:24 ` Rik van Riel
2009-09-08 19:24 ` Rik van Riel
2009-09-09 0:09 ` Fabio Checconi
2009-09-09 2:06 ` Vivek Goyal
2009-09-09 2:06 ` Vivek Goyal
2009-09-09 15:41 ` Fabio Checconi
2009-09-09 17:30 ` Vivek Goyal
2009-09-09 17:30 ` Vivek Goyal
2009-09-09 19:01 ` Fabio Checconi
2009-09-09 9:24 ` Ryo Tsuruta
2009-09-09 9:24 ` Ryo Tsuruta
2009-09-16 4:45 ` ioband: Limited fairness and weak isolation between groups (Was: Re: Regarding dm-ioband tests) Vivek Goyal
2009-09-16 4:45 ` Vivek Goyal
2009-09-18 7:33 ` ioband: Limited fairness and weak isolation between groups Ryo Tsuruta
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=20090909133427.GA8256@redhat.com \
--to=vgoyal@redhat.com \
--cc=agk@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=dm-devel@redhat.com \
--cc=guijianfeng@cn.fujitsu.com \
--cc=jens.axboe@oracle.com \
--cc=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nauman@google.com \
--cc=riel@redhat.com \
--cc=ryov@valinux.co.jp \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.