From: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Andrea Righi <righi.andrea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
ngupta-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
chlunde-om2ZC0WAoZIXWF+eFR7m5Q@public.gmane.org,
dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
matt-cT2on/YLNlBWk0Htik3J/w@public.gmane.org,
dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
roberto-5KDOxZqKugI@public.gmane.org,
agk-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org,
m.innocenti-qooieK91W7JeoWH0uzbU5w@public.gmane.org,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org,
eric.rannaud-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Subject: Re: [RFC][PATCH -mm 0/5] cgroup: block device i/o controller (v9)
Date: Thu, 18 Sep 2008 09:55:13 -0400 [thread overview]
Message-ID: <20080918135513.GE20640@redhat.com> (raw)
In-Reply-To: <48D0C43A.2010102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
On Wed, Sep 17, 2008 at 10:47:54AM +0200, Andrea Righi wrote:
> Hirokazu Takahashi wrote:
> > Hi,
> >
> >> TODO:
> >>
> >> * Try to push down the throttling and implement it directly in the I/O
> >> schedulers, using bio-cgroup (http://people.valinux.co.jp/~ryov/bio-cgroup/)
> >> to keep track of the right cgroup context. This approach could lead to more
> >> memory consumption and increases the number of dirty pages (hard/slow to
> >> reclaim pages) in the system, since dirty-page ratio in memory is not
> >> limited. This could even lead to potential OOM conditions, but these problems
> >> can be resolved directly into the memory cgroup subsystem
> >>
> >> * Handle I/O generated by kswapd: at the moment there's no control on the I/O
> >> generated by kswapd; try to use the page_cgroup functionality of the memory
> >> cgroup controller to track this kind of I/O and charge the right cgroup when
> >> pages are swapped in/out
> >
> > FYI, this also can be done with bio-cgroup, which determine the owner cgroup
> > of a given anonymous page.
> >
> > Thanks,
> > Hirokazu Takahashi
>
> That would be great! FYI here is how I would like to proceed:
>
> - today I'll post a new version of my cgroup-io-throttle patch rebased
> to 2.6.27-rc5-mm1 (it's well tested and seems to be stable enough).
> To keep the things light and simpler I've implemented custom
> get_cgroup_from_page() / put_cgroup_from_page() in the memory
> controller to retrieve the owner of a page, holding a reference to the
> corresponding memcg, during async writes in submit_bio(); this is not
> probably the best way to proceed, and a more generic framework like
> bio-cgroup sounds better, but it seems to work quite well. The only
> problem I've found is that during swap_writepage() the page is not
> assigned to any page_cgroup (page_get_page_cgroup() returns NULL), and
> so I'm not able to charge the cost of this I/O operation to the right
> cgroup. Does bio-cgroup address or even resolve this issue?
> - begin to implement a new branch of cgroup-io-throttle on top of
> bio-cgroup
> - also start to implement an additional request queue to provide first a
> control at the cgroup level and a dispatcher to pass the request to
> the elevator (as suggested by Vivek)
>
Hi Andrea,
So if we maintain and rb-tree per request queue and implement the cgroup
rules there, then that will take care of io-throttling also. (One can
control the release of bio/requests to elevator based on any kind of
rules. proportional weight/max-bandwidth).
If that's the case, I was wondering what do you mean by "begin to
implement new branch of cgroup-io-throttle" on top of bio-cgroup".
Thanks
Vivek
WARNING: multiple messages have this Message-ID (diff)
From: Vivek Goyal <vgoyal@redhat.com>
To: Andrea Righi <righi.andrea@gmail.com>
Cc: Hirokazu Takahashi <taka@valinux.co.jp>,
randy.dunlap@oracle.com, menage@google.com, chlunde@ping.uio.no,
dpshah@google.com, eric.rannaud@gmail.com,
balbir@linux.vnet.ibm.com, fernando@oss.ntt.co.jp,
akpm@linux-foundation.org, agk@sourceware.org,
subrata@linux.vnet.ibm.com, axboe@kernel.dk,
m.innocenti@cineca.it, containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, dave@linux.vnet.ibm.com,
matt@bluehost.com, roberto@unbit.it, ngupta@google.com
Subject: Re: [RFC][PATCH -mm 0/5] cgroup: block device i/o controller (v9)
Date: Thu, 18 Sep 2008 09:55:13 -0400 [thread overview]
Message-ID: <20080918135513.GE20640@redhat.com> (raw)
In-Reply-To: <48D0C43A.2010102@gmail.com>
On Wed, Sep 17, 2008 at 10:47:54AM +0200, Andrea Righi wrote:
> Hirokazu Takahashi wrote:
> > Hi,
> >
> >> TODO:
> >>
> >> * Try to push down the throttling and implement it directly in the I/O
> >> schedulers, using bio-cgroup (http://people.valinux.co.jp/~ryov/bio-cgroup/)
> >> to keep track of the right cgroup context. This approach could lead to more
> >> memory consumption and increases the number of dirty pages (hard/slow to
> >> reclaim pages) in the system, since dirty-page ratio in memory is not
> >> limited. This could even lead to potential OOM conditions, but these problems
> >> can be resolved directly into the memory cgroup subsystem
> >>
> >> * Handle I/O generated by kswapd: at the moment there's no control on the I/O
> >> generated by kswapd; try to use the page_cgroup functionality of the memory
> >> cgroup controller to track this kind of I/O and charge the right cgroup when
> >> pages are swapped in/out
> >
> > FYI, this also can be done with bio-cgroup, which determine the owner cgroup
> > of a given anonymous page.
> >
> > Thanks,
> > Hirokazu Takahashi
>
> That would be great! FYI here is how I would like to proceed:
>
> - today I'll post a new version of my cgroup-io-throttle patch rebased
> to 2.6.27-rc5-mm1 (it's well tested and seems to be stable enough).
> To keep the things light and simpler I've implemented custom
> get_cgroup_from_page() / put_cgroup_from_page() in the memory
> controller to retrieve the owner of a page, holding a reference to the
> corresponding memcg, during async writes in submit_bio(); this is not
> probably the best way to proceed, and a more generic framework like
> bio-cgroup sounds better, but it seems to work quite well. The only
> problem I've found is that during swap_writepage() the page is not
> assigned to any page_cgroup (page_get_page_cgroup() returns NULL), and
> so I'm not able to charge the cost of this I/O operation to the right
> cgroup. Does bio-cgroup address or even resolve this issue?
> - begin to implement a new branch of cgroup-io-throttle on top of
> bio-cgroup
> - also start to implement an additional request queue to provide first a
> control at the cgroup level and a dispatcher to pass the request to
> the elevator (as suggested by Vivek)
>
Hi Andrea,
So if we maintain and rb-tree per request queue and implement the cgroup
rules there, then that will take care of io-throttling also. (One can
control the release of bio/requests to elevator based on any kind of
rules. proportional weight/max-bandwidth).
If that's the case, I was wondering what do you mean by "begin to
implement new branch of cgroup-io-throttle" on top of bio-cgroup".
Thanks
Vivek
next prev parent reply other threads:[~2008-09-18 13:55 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-27 16:07 [RFC][PATCH -mm 0/5] cgroup: block device i/o controller (v9) Andrea Righi
[not found] ` <1219853257-11052-1-git-send-email-righi.andrea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-02 18:06 ` Vivek Goyal
2008-09-02 18:06 ` Vivek Goyal
[not found] ` <20080902180620.GE15847-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-02 20:50 ` Andrea Righi
2008-09-02 20:50 ` Andrea Righi
[not found] ` <48BDA704.9040000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-02 21:41 ` Vivek Goyal
2008-09-02 21:41 ` Vivek Goyal
[not found] ` <20080902214146.GA3382-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-05 15:59 ` Vivek Goyal
2008-09-05 15:59 ` Vivek Goyal
[not found] ` <20080905155944.GF13742-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-05 17:38 ` Andrea Righi
2008-09-05 17:38 ` Andrea Righi
2008-09-17 7:18 ` Hirokazu Takahashi
2008-09-17 9:04 ` Takuya Yoshikawa
2008-09-17 7:18 ` Hirokazu Takahashi
[not found] ` <20080917.161811.27257227.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-17 8:47 ` Andrea Righi
2008-09-17 8:47 ` Andrea Righi
2008-09-18 11:24 ` Hirokazu Takahashi
[not found] ` <20080918.202416.120249186.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-18 14:37 ` Andrea Righi
2008-09-18 14:37 ` Andrea Righi
[not found] ` <48D0C43A.2010102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2008-09-18 11:24 ` Hirokazu Takahashi
2008-09-18 13:55 ` Vivek Goyal [this message]
2008-09-18 13:55 ` Vivek Goyal
[not found] ` <20080918135513.GE20640-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-18 14:54 ` Andrea Righi
2008-09-18 14:54 ` Andrea Righi
2008-09-17 9:04 ` Takuya Yoshikawa
2008-09-17 9:42 ` Andrea Righi
[not found] ` <48D0C800.30207-gVGce1chcLdL9jVzuh4AOg@public.gmane.org>
2008-09-17 9:42 ` Andrea Righi
2008-09-17 10:08 ` Andrea Righi
2008-09-17 10:08 ` Andrea Righi
-- strict thread matches above, loose matches on Subject: below --
2008-08-27 16:07 Andrea Righi
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=20080918135513.GE20640@redhat.com \
--to=vgoyal-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=agk-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
--cc=balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=chlunde-om2ZC0WAoZIXWF+eFR7m5Q@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=eric.rannaud-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=m.innocenti-qooieK91W7JeoWH0uzbU5w@public.gmane.org \
--cc=matt-cT2on/YLNlBWk0Htik3J/w@public.gmane.org \
--cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=ngupta-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=righi.andrea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=roberto-5KDOxZqKugI@public.gmane.org \
--cc=subrata-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
/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.