Re: [PATCH] meminfo: show /proc/meminfo base on container's memcg

From: Kamezawa Hiroyuki
Date: Wed May 30 2012 - 20:35:45 EST


(2012/05/31 9:22), KOSAKI Motohiro wrote:
On Wed, May 30, 2012 at 8:08 PM, Kamezawa Hiroyuki
<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
(2012/05/31 6:38), David Rientjes wrote:

On Tue, 29 May 2012, Gao feng wrote:

cgroup and namespaces are used for creating containers but some of
information is not isolated/virtualized. This patch is for isolating
/proc/meminfo
information per container, which uses memory cgroup. By this, top,free
and other tools under container can work as expected(show container's
usage) without changes.

This patch is a trial to show memcg's info in /proc/meminfo if 'current'
is under a memcg other than root.

we show /proc/meminfo base on container's memory cgroup.
because there are lots of info can't be provide by memcg, and
the cmds such as top, free just use some entries of /proc/meminfo,
we replace those entries by memory cgroup.

if container has no memcg, we will show host's /proc/meminfo
as before.

there is no idea how to deal with Buffers,I just set it zero,
It's strange if Buffers bigger than MemTotal.

Signed-off-by: Gao feng<gaofeng@xxxxxxxxxxxxxx>


Nack, this type of thing was initially tried with cpusets when a thread
was bound to a subset of nodes, i.e. only show the total amount of memory
spanned by those nodes.


Hmm. How about having memory.meminfo under memory cgroup directory and
use it with bind mount ? (container tools will be able to help it.)
Then, container applications(top,free,etc..) can read the values they wants.
If admins don't want it, they'll not use bind mount.

+1. 50% users need namespace separation and others don't. We need a
selectability.

My test with sysfs node's meminfo seems to work...

[root@rx100-1 qqm]# mount --bind /sys/devices/system/node/node0/meminfo /proc/meminfo
[root@rx100-1 qqm]# cat /proc/meminfo

Node 0 MemTotal: 8379636 kB
Node 0 MemFree: 4050224 kB
Node 0 MemUsed: 4329412 kB
Node 0 Active: 3010876 kB
Node 0 Inactive: 507480 kB
Node 0 Active(anon): 2671920 kB
Node 0 Inactive(anon): 111596 kB
Node 0 Active(file): 338956 kB
Node 0 Inactive(file): 395884 kB
Node 0 Unevictable: 48316 kB
Node 0 Mlocked: 11524 kB
Node 0 Dirty: 8 kB
Node 0 Writeback: 0 kB
Node 0 FilePages: 744908 kB
Node 0 Mapped: 20604 kB
Node 0 AnonPages: 1344940 kB
Node 0 Shmem: 1448 kB
Node 0 KernelStack: 3528 kB
Node 0 PageTables: 53840 kB
Node 0 NFS_Unstable: 0 kB
Node 0 Bounce: 0 kB
Node 0 WritebackTmp: 0 kB
Node 0 Slab: 184404 kB
Node 0 SReclaimable: 131060 kB
Node 0 SUnreclaim: 53344 kB
Node 0 HugePages_Total: 0
Node 0 HugePages_Free: 0
Node 0 HugePages_Surp: 0

Thanks,
-Kame

--
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/