Re: [RFC] Shared page accounting for memory cgroup

From: KAMEZAWA Hiroyuki
Date: Tue Jan 05 2010 - 23:06:17 EST


On Mon, 4 Jan 2010 06:20:31 +0530
Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:

> * KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2010-01-04 09:35:28]:
>
> > On Mon, 4 Jan 2010 05:37:52 +0530
> > Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > * KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> [2010-01-04 08:51:08]:
> > >
> > > > On Tue, 29 Dec 2009 23:57:43 +0530
> > > > Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
> > > >
> > > > > Hi, Everyone,
> > > > >
> > > > > I've been working on heuristics for shared page accounting for the
> > > > > memory cgroup. I've tested the patches by creating multiple cgroups
> > > > > and running programs that share memory and observed the output.
> > > > >
> > > > > Comments?
> > > >
> > > > Hmm? Why we have to do this in the kernel ?
> > > >
> > >
> > > For several reasons that I can think of
> > >
> > > 1. With task migration changes coming in, getting consistent data free of races
> > > is going to be hard.
> >
> > Hmm, Let's see real-worlds's "ps" or "top" command. Even when there are no guarantee
> > of error range of data, it's still useful.
>
> Yes, my concern is this
>
> 1. I iterate through tasks and calculate RSS
> 2. I look at memory.usage_in_bytes
>
> If the time in user space between 1 and 2 is large I get very wrong
> results, specifically if the workload is changing its memory usage
> drastically.. no?
>
No. If it takes long time, locking fork()/exit() for such long time is the bigger
issue.
I recommend you to add memacct subsystem to sum up RSS of all processes's RSS counting
under a cgroup. Althoght it may add huge costs in page fault path but implementation
will be very simple and will not hurt realtime ops.
There will be no terrible race, I guess.

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/