Re: [PATCH v4 0/4] cgroup notifications API and memory thresholds

From: Balbir Singh
Date: Sun Jan 03 2010 - 19:19:42 EST


* Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> [2009-12-27 20:37:57]:

> On Sun, Dec 27, 2009 at 2:47 PM, Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
> > * Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> [2009-12-27 04:08:58]:
> >
> >> This patchset introduces eventfd-based API for notifications in cgroups and
> >> implements memory notifications on top of it.
> >>
> >> It uses statistics in memory controler to track memory usage.
> >>
> >> Output of time(1) on building kernel on tmpfs:
> >>
> >> Root cgroup before changes:
> >>       make -j2  506.37 user 60.93s system 193% cpu 4:52.77 total
> >> Non-root cgroup before changes:
> >>       make -j2  507.14 user 62.66s system 193% cpu 4:54.74 total
> >> Root cgroup after changes (0 thresholds):
> >>       make -j2  507.13 user 62.20s system 193% cpu 4:53.55 total
> >> Non-root cgroup after changes (0 thresholds):
> >>       make -j2  507.70 user 64.20s system 193% cpu 4:55.70 total
> >> Root cgroup after changes (1 thresholds, never crossed):
> >>       make -j2  506.97 user 62.20s system 193% cpu 4:53.90 total
> >> Non-root cgroup after changes (1 thresholds, never crossed):
> >>       make -j2  507.55 user 64.08s system 193% cpu 4:55.63 total
> >>
> >> Any comments?
> >
> > Thanks for adding the documentation, now on to more critical questions
> >
> > 1. Any reasons for not using cgroupstats?
>
> Could you explain the idea? I don't see how cgroupstats applicable for
> the task.

cgroupstats allows you to notify task statistics or send
notifications, hence the applicability.

>
> > 2. Is there a user space test application to test this code.
>
> Attached. It's not very clean, but good enough for testing propose.
> Example of usage:
>
> $ echo '/cgroups/memory.usage_in_bytes 1G' | ./cgroup_event_monitor
>

Thanks, I'll test it right now.

> >  IIUC,
> > I need to write a program that uses eventfd(2) and then passes
> > the eventfd descriptor and thresold to cgroup.*event* file and
> > then the program will get notified when the threshold is reached?
>
> You need to pass eventfd descriptor, descriptor of control file to be
> monitored (memory.usage_in_bytes or memory.memsw.usage_in_bytes) and
> threshold.
>
> Do you want to rename cgroup.event_control to cgroup.event?

No, event_control seems like a good name ATM.


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