Messages in this thread | | | Date | Wed, 25 Feb 2009 16:50:03 +0530 | From | Bharata B Rao <> | Subject | Re: [RFC PATCH 2/2] Add per-cgroup CPU controller statistics |
| |
On Wed, Feb 25, 2009 at 12:04:10PM +0100, Peter Zijlstra wrote: > On Wed, 2009-02-25 at 16:29 +0530, Bharata B Rao wrote: > > From: Balaji Rao <balajirrao@gmail.com> > > > > sched: Add cpu controller statistics > > > > Add per-cgroup cpu controller statistics like system time and user time > > consumed by groups of tasks. > > Do we want this unconditionally?
Not sure if I understand you correctly here, but we are collecting stats only when CONFIG_CGROUP_SCHED.
Or do you mean we need a config option to enable stats collection ? If so, we have memory controller already providing stats unconditionally.
> > > > +#ifdef CONFIG_CGROUP_SCHED > > +static void account_task_group_time(struct task_struct *p, > > + enum cpu_cgroup_stat_index idx, int val) > > +{ > > + struct task_group *tg = task_group(p); > > + > > + if (likely(tg->stat)) > > + percpu_counter_add(&tg->stat->cpustat[idx], val); > > +} > > +#else > > +#define account_task_group_time(x, y, z) { 0; } > > inline please, so we get argument validation.
Actually wanted to inline, but one of the arguments (cpu_cgroup_stat_index) is defined only CONFIG_CGROUP_SCHED. Hence didn't want argument validation here.
> > + > > + for (i = 0; i < CPU_CGROUP_STAT_NSTATS; i++) > > + percpu_counter_init(&tg->stat->cpustat[i], 0); > > percpu_counter_init() can fail with -ENOMEM.
Ok, will fix.
Thanks for your review, Peter.
Regards, Bharata.
| |