From: Andrea Righi <arighi@develer.com>
To: Balbir Singh <balbir@linux.vnet.ibm.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Suleiman Souhlal <suleiman@google.com>,
Vivek Goyal <vgoyal@redhat.com>, Greg Thelen <gthelen@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: [PATCH -mmotm 0/2] memcg: per cgroup dirty limit (v2)
Date: Fri, 26 Feb 2010 23:52:29 +0100 [thread overview]
Message-ID: <1267224751-6382-1-git-send-email-arighi@develer.com> (raw)
Control the maximum amount of dirty pages a cgroup can have at any given time.
Per cgroup dirty limit is like fixing the max amount of dirty (hard to reclaim)
page cache used by any cgroup. So, in case of multiple cgroup writers, they
will not be able to consume more than their designated share of dirty pages and
will be forced to perform write-out if they cross that limit.
The overall design is the following:
- account dirty pages per cgroup
- limit the number of dirty pages via memory.dirty_ratio / memory.dirty_bytes
and memory.dirty_background_ratio / memory.dirty_background_bytes in
cgroupfs
- start to write-out (background or actively) when the cgroup limits are
exceeded
This feature is supposed to be strictly connected to any underlying IO
controller implementation, so we can stop increasing dirty pages in VM layer
and enforce a write-out before any cgroup will consume the global amount of
dirty pages.
Changelog (v1 -> v2)
~~~~~~~~~~~~~~~~~~~~~~
* rebased to -mmotm
* properly handle hierarchical accounting
* added the same system-wide interfaces to set dirty limits
(memory.dirty_ratio / memory.dirty_bytes, memory.dirty_background_ratio, memory.dirty_background_bytes)
* other minor fixes and improvements based on the received feedbacks
TODO:
- handle the migration of tasks across different cgroups (maybe adding
DIRTY/WRITEBACK/UNSTABLE flag to struct page_cgroup)
- provide an appropriate documentation (in Documentation/cgroups/memory.txt)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2010-02-26 22:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-26 22:52 Andrea Righi [this message]
2010-02-26 22:52 ` [PATCH -mmotm 1/2] memcg: dirty pages accounting and limiting infrastructure Andrea Righi
2010-03-01 1:09 ` KAMEZAWA Hiroyuki
2010-03-01 10:24 ` Andrea Righi
2010-03-01 8:05 ` Daisuke Nishimura
2010-03-01 10:30 ` Andrea Righi
2010-03-01 8:58 ` Kirill A. Shutemov
2010-03-01 10:38 ` Andrea Righi
2010-02-26 22:52 ` [PATCH -mmotm 2/2] memcg: dirty pages instrumentation 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=1267224751-6382-1-git-send-email-arighi@develer.com \
--to=arighi@develer.com \
--cc=akpm@linux-foundation.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=gthelen@google.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=suleiman@google.com \
--cc=vgoyal@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).