Re: [PATCH] memcg: make memcg's file mapped consistent with globalVM

From: KAMEZAWA Hiroyuki
Date: Wed Oct 28 2009 - 03:47:06 EST


On Wed, 28 Oct 2009 13:02:12 +0530
Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:

> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2009-10-28 16:24:58]:
>
> > On Wed, 28 Oct 2009 12:48:54 +0530
> > Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > * KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2009-10-28 12:16:19]:
> > >
> > > > Based on mmotm-Oct13 + some patches in -mm queue.
> > > >
> > > > ==
> > > > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> > > >
> > > > memcg-cleanup-file-mapped-consistent-with-globarl-vm-stat.patch
> > > >
> > > > In global VM, FILE_MAPPED is used but memcg uses MAPPED_FILE.
> > > > This makes grep difficult. Replace memcg's MAPPED_FILE with FILE_MAPPED
> > > >
> > > > And in global VM, mapped shared memory is accounted into FILE_MAPPED.
> > > > But memcg doesn't. fix it.
> > >
> > > I wanted to explicitly avoid this since I wanted to do an iterative
> > > correct accounting of shared memory. The renaming is fine with me
> > > since we don't break ABI in user space.
> > >
> > To do that, FILE_MAPPED is not correct.
> > Because MAPPED includes shmem in global VM, no valid reason to do different
> > style of counting.
>
> OK, fair enough! Lets count shmem in FILE_MAPPED
>
> >
> > For shmem, we have a charge type as MEM_CGROUP_CHARGE_TYPE_SHMEM and
> > we can set "PCG_SHMEM" flag onto page_cgroup or some.
> > Then, we can count it in explicit way.
> >
>
> Apart from shmem, I want to count all memory that is shared (mapcount > 1),
> I'll send out an RFC once I have the implementation.

I recommend you to start from adding new statistics to global VM to show that.
(Then, we don't need to say "this is a special counter for memcg.....)

> For now, I
> want to focus on testing memcg a bit more and start looking at some
> aspects of dirty accounting.
>
I'm now cleaning up and test array counter (I posted before.) which works as
vm_stat[] for memcg. Maybe it will be useful.

A bit off-topic, let me show my current TO-DO-LIST.

- implementing a counter like vm_stat[]
- wait for Nishimura's task move patches.
- implementing dirty_page accounting in very simple style.
- implementing dirty_page limiting or kicking flusher thread for memcg.
- fix oom-killer related things.
- some necessary clean-ups.
- implementing memory usage notifier or oom-notifier to userland.
- helping I/O controller for buffered I/O tracking.

Because I don't fix priority of each jobs, someone unknown may finish
before I start ;)

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/