Re: [PATCH -mmotm 0/4] memcg: per cgroup dirty limit (v4)

From: Balbir Singh
Date: Thu Mar 04 2010 - 12:11:56 EST


* Andrea Righi <arighi@xxxxxxxxxxx> [2010-03-04 11:40:11]:

> 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 defined by the /proc/sys/vm/dirty_ratio|dirty_bytes and
> /proc/sys/vm/dirty_background_ratio|dirty_background_bytes limits.
>
> Changelog (v3 -> v4)
> ~~~~~~~~~~~~~~~~~~~~~~
> * handle the migration of tasks across different cgroups
> NOTE: at the moment we don't move charges of file cache pages, so this
> functionality is not immediately necessary. However, since the migration of
> file cache pages is in plan, it is better to start handling file pages
> anyway.
> * properly account dirty pages in nilfs2
> (thanks to Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>)
> * lockless access to dirty memory parameters
> * fix: page_cgroup lock must not be acquired under mapping->tree_lock
> (thanks to Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> and
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>)
> * code restyling
>

This seems to be converging, what sort of tests are you running on
this patchset?

--
Three Cheers,
Balbir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/