Re: [PATCH] Make swap accounting default behavior configurable

Andrew Morton
2010-11-16T20:47:10Z

On Tue, 16 Nov 2010 11:17:26 +0100
Michal Hocko <mhocko@suse.cz> wrote:

> Hi Andrew,
> could you consider the following patch for the Linus tree, please?
> The discussion took place in this email thread
> http://lkml.org/lkml/2010/11/10/114.
> The patch is based on top of 151f52f09c572 commit in the Linus tree.
>
> Please let me know if there I should route this patch through somebody
> else.
>
> Thanks!
>
> ---
> >From 30238aaec758988493af793939f14b0ba83dc4b3 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@suse.cz>
> Date: Wed, 10 Nov 2010 13:30:04 +0100
> Subject: [PATCH] Make swap accounting default behavior configurable
>
> Swap accounting can be configured by CONFIG_CGROUP_MEM_RES_CTLR_SWAP
> configuration option and then it is turned on by default. There is
> a boot option (noswapaccount) which can disable this feature.
>
> This makes it hard for distributors to enable the configuration option
> as this feature leads to a bigger memory consumption and this is a no-go
> for general purpose distribution kernel. On the other hand swap
> accounting may be very usuful for some workloads.

This patch is needed by distros, and distros use the -stable tree, I
assume. Do you see reasons why this patch should be backported into
-stable, so distros don't need to patch it themselves? If so, any
particular kernel versions? 2.6.37?

> This patch adds a new configuration option which controls the default
> behavior (CGROUP_MEM_RES_CTLR_SWAP_ENABLED). If the option is selected
> then the feature is turned on by default.
>
> It also adds a new boot parameter swapaccount which (contrary to
> noswapaccount) enables the feature. (I would consider swapaccount=yes|no
> semantic with removed noswapaccount parameter much better but this
> parameter is kind of API which might be in use and unexpected breakage
> is no-go.)
>
> The default behavior is unchanged (if CONFIG_CGROUP_MEM_RES_CTLR_SWAP is
> enabled then CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is enabled as well)
>
> Signed-off-by: Michal Hocko <mhocko@suse.cz>
> Acked-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
> ---
> Documentation/kernel-parameters.txt | 3 +++
> init/Kconfig | 13 +++++++++++++
> mm/memcontrol.c | 15 ++++++++++++++-
> 3 files changed, 30 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index ed45e98..14eafa5 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2385,6 +2385,9 @@ and is between 256 and 4096 characters. It is defined in the file
> improve throughput, but will also increase the
> amount of memory reserved for use by the client.
>
> + swapaccount [KNL] Enable accounting of swap in memory resource
> + controller. (See Documentation/cgroups/memory.txt)

So we have swapaccount and noswapaccount. Ho hum, "swapaccount=[1|0]"
would have been better.