Re: [PATCH v2 0/3] Per-cgroup swap file support

From: Yu Zhao
Date: Wed Apr 02 2014 - 17:30:04 EST

On Wed, Apr 02, 2014 at 04:54:33PM -0400, Johannes Weiner wrote:
> On Wed, Apr 02, 2014 at 01:34:06PM -0700, Yu Zhao wrote:
> > This series of patches adds support to configure a cgroup to swap to a
> > particular file by using control file memory.swapfile.
> >
> > Originally, cgroups share system-wide swap space and limiting cgroup swapping
> > is not possible. This patchset solves the problem by adding mechanism that
> > isolates cgroup swap spaces (i.e. per-cgroup swap file) so users can safely
> > enable swap for particular cgroups without worrying about one cgroup uses up
> > all swap space.
> Isn't that what the swap controller is for?

Well, I should've used word "isolating" instead of "limiting" (and yes, the
example I gave is confusing too). MEMCG_SWAP limits swaping while per-cgroup
swap file not only limits but also isolates the swap space. In another word,
per-cgroup swap file acts like the cgroup owns its private swap file which
can be specified to a particular path when users want the cgroup to swap to
a disk volumes rather than the one used by default (system-wide) swap files.

> config MEMCG_SWAP
> bool "Memory Resource Controller Swap Extension"
> depends on MEMCG && SWAP
> help
> Add swap management feature to memory resource controller. When you
> enable this, you can limit mem+swap usage per cgroup. In other words,
> when you disable this, memory resource controller has no cares to
> usage of swap...a process can exhaust all of the swap. This extension
> is useful when you want to avoid exhaustion swap but this itself
> adds more overheads and consumes memory for remembering information.
> Especially if you use 32bit system or small memory system, please
> be careful about enabling this. When memory resource controller
> is disabled by boot option, this will be automatically disabled and
> there will be no overhead from this. Even when you set this config=y,
> if boot option "swapaccount=0" is set, swap will not be accounted.
> Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
> size is 4096bytes, 512k per 1Gbytes of swap.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at