Re: memcg: cat: memory.memsw.* : Operation not supported

From: Zhouping Liu
Date: Mon Jan 21 2013 - 10:58:02 EST


On 01/21/2013 06:56 PM, Michal Hocko wrote:
On Mon 21-01-13 03:39:07, Zhouping Liu wrote:

----- Original Message -----
From: "Kamezawa Hiroyuki" <kamezawa.hiroyu@xxxxxxxxxxxxxx>
To: "Tejun Heo" <tj@xxxxxxxxxx>
Cc: "David Rientjes" <rientjes@xxxxxxxxxx>, "Michal Hocko" <mhocko@xxxxxxx>, "Zhouping Liu" <zliu@xxxxxxxxxx>,
linux-mm@xxxxxxxxx, "Li Zefan" <lizefan@xxxxxxxxxx>, "CAI Qian" <caiqian@xxxxxxxxxx>, "LKML"
<linux-kernel@xxxxxxxxxxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, June 30, 2012 11:45:41 AM
Subject: Re: memcg: cat: memory.memsw.* : Operation not supported

(2012/06/29 3:31), Tejun Heo wrote:
Hello, KAME.

On Thu, Jun 28, 2012 at 01:04:16PM +0900, Kamezawa Hiroyuki wrote:
I still wish it's folded into CONFIG_MEMCG and conditionalized
just on
CONFIG_SWAP tho.

In old days, memsw controller was not very stable. So, we devided
the config.
And, it makes size of memory for swap-device double (adds 2bytes
per swapent.)
That is the problem.
I see. Do you think it's now reasonable to drop the separate
config
option? Having memcg enabled but swap unaccounted sounds
half-broken
to me.

Hmm. Maybe it's ok if we can keep boot option. I'll cook a patch in
the next week.
Hello Kame and All,

Sorry for so delay to open the thread. (please open the link https://lkml.org/lkml/2012/6/26/547 if you don't remember the topic)

do you have any updates for the issue?

I checked the latest version, if we don't open CONFIG_MEMCG_SWAP_ENABLED(commit c255a458055e changed
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED as CONFIG_MEMCG_SWAP_ENABLED), the issue still exist:

[root@dhcp-8-128 ~] cat .config | grep -i memcg
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
# CONFIG_MEMCG_SWAP_ENABLED is not set
CONFIG_MEMCG_KMEM=y
[root@dhcp-8-128 ~] uname -r
3.8.0-rc4+
[root@dhcp-8-128 ~] cat memory.memsw.*
cat: memory.memsw.failcnt: Operation not supported
cat: memory.memsw.limit_in_bytes: Operation not supported
cat: memory.memsw.max_usage_in_bytes: Operation not supported
cat: memory.memsw.usage_in_bytes: Operation not supported
Ohh, this one got lost. I thought Kame was working on that.
Anyway the patch bellow should work:
---
From 5f8141bf7d27014cfbc7b450f13f6146b5ab099d Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@xxxxxxx>
Date: Mon, 21 Jan 2013 11:33:26 +0100
Subject: [PATCH] memcg: Do not create memsw files if swap accounting is
disabled

Zhouping Liu has reported that memsw files are exported even though
swap accounting is runtime disabled if CONFIG_MEMCG_SWAP is enabled.
This behavior has been introduced by af36f906 (memcg: always create
memsw files if CONFIG_CGROUP_MEM_RES_CTLR_SWAP) and it causes any
attempt to open the file to return EOPNOTSUPP. Although EOPNOTSUPP
should say be clear that memsw operations are not supported in the given
configuration it is fair to say that this behavior could be quite
confusing.

Let's tear memsw files out of default cgroup files and add
them only if the swap accounting is really enabled (either by
CONFIG_MEMCG_SWAP_ENABLED or swapaccount=1 boot parameter). We can
hook into mem_cgroup_init which is called when the memcg subsystem is
initialized and which happens after boot command line is processed.

Thanks for your quick patch, your patch looks good for me.

I tested it with or without CONFIG_MEMCG_SWAP_ENABLED=y,
and also tested it with swapaccount=1 kernel parameters, all are okay.

Tested-by: Zhouping Liu <zliu@xxxxxxxxxx>

Thanks,
Zhouping
--
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/