All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <righi.andrea@gmail.com>
To: Hirokazu Takahashi <taka@valinux.co.jp>
Cc: kamezawa.hiroyu@jp.fujitsu.com, balbir@linux.vnet.ibm.com,
	menage@google.com, agk@sourceware.org, akpm@linux-foundation.org,
	axboe@kernel.dk, baramsori72@gmail.com, chlunde@ping.uio.no,
	dave@linux.vnet.ibm.com, dpshah@google.com,
	eric.rannaud@gmail.com, fernando@oss.ntt.co.jp,
	lizf@cn.fujitsu.com, m.innocenti@cineca.it, matt@bluehost.com,
	ngupta@google.com, randy.dunlap@oracle.com, roberto@unbit.it,
	ryov@valinux.co.jp, s-uchida@ap.jp.nec.com,
	subrata@linux.vnet.ibm.com, yoshikawa.takuya@oss.ntt.co.jp,
	containers@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH -mm 0/5] cgroup: block device i/o controller (v9)
Date: Thu, 18 Sep 2008 16:37:56 +0200	[thread overview]
Message-ID: <48D267C4.2060906@gmail.com> (raw)
In-Reply-To: <20080918.202416.120249186.taka@valinux.co.jp>

Hirokazu Takahashi wrote:
> Hi,
> 
>>> 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
> 
> This behavior depends on the version of memory-cgroup.
> In the previous version, pages in the swap cache were owned by one of
> the cgroups.
> 
> Kamezawa-san, one of the implementer, told me he got this feature off
> temporarily and he was going to turn it on again. I think this
> workaround is chosen because the current implementation of memory
> cgroup has a weak point under memory pressure.
> 
>>   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?
> 
> Bio-cgroup can't support pages in the swap cache temporarily with the
> current linux kernel either since it shares the same infrastructure
> with memory-cgroup.
> 
> Now, they have just started to rewrite the infrastructure to track pages
> with page_cgroup, which is going to give us good performance ever.
> After that I'm going to enhance bio-cgroup more, such as dirty page
> tracking. To tell the truth, I already have dirty pages tracking patch
> for the current linux in my hand, which isn't posted yet. I'm going to
> port it on the new infrastructure.
> 
> If memory cgroup team change their mind, I will implement swap-pages
> tracking in bio-cgroup.

Very good! in any case it seems I'll get the tracking of swap-pages from
someone else.. so I don't have to change/implement anything in my
io-throttle patchset. :)

I'll start to use bio-cgroup in io-throttle ASAP and do some tests. I'll
keep you informed.

Thanks,
-Andrea

  reply	other threads:[~2008-09-18 14:38 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
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
2008-09-05 17:38               ` Andrea Righi
     [not found]               ` <20080905155944.GF13742-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-05 17:38                 ` Andrea Righi
     [not found]     ` <20080902180620.GE15847-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-02 20:50       ` Andrea Righi
2008-09-17  7:18   ` Hirokazu Takahashi
2008-09-17  9:04   ` Takuya Yoshikawa
2008-09-17  7:18 ` Hirokazu Takahashi
2008-09-17  8:47   ` Andrea Righi
2008-09-18 11:24     ` Hirokazu Takahashi
2008-09-18 14:37       ` Andrea Righi [this message]
     [not found]       ` <20080918.202416.120249186.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
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
2008-09-18 13:55         ` Vivek Goyal
2008-09-18 14:54         ` Andrea Righi
     [not found]         ` <20080918135513.GE20640-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2008-09-18 14:54           ` Andrea Righi
     [not found]   ` <20080917.161811.27257227.taka-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-09-17  8:47     ` Andrea Righi
2008-09-17  9:04 ` Takuya Yoshikawa
     [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  9:42   ` 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=48D267C4.2060906@gmail.com \
    --to=righi.andrea@gmail.com \
    --cc=agk@sourceware.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=baramsori72@gmail.com \
    --cc=chlunde@ping.uio.no \
    --cc=containers@lists.linux-foundation.org \
    --cc=dave@linux.vnet.ibm.com \
    --cc=dpshah@google.com \
    --cc=eric.rannaud@gmail.com \
    --cc=fernando@oss.ntt.co.jp \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=m.innocenti@cineca.it \
    --cc=matt@bluehost.com \
    --cc=menage@google.com \
    --cc=ngupta@google.com \
    --cc=randy.dunlap@oracle.com \
    --cc=roberto@unbit.it \
    --cc=ryov@valinux.co.jp \
    --cc=s-uchida@ap.jp.nec.com \
    --cc=subrata@linux.vnet.ibm.com \
    --cc=taka@valinux.co.jp \
    --cc=yoshikawa.takuya@oss.ntt.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.