Messages in this thread | | | Date | Sun, 27 Dec 2009 20:37:57 +0200 | Subject | Re: [PATCH v4 0/4] cgroup notifications API and memory thresholds | From | "Kirill A. Shutemov" <> |
| |
On Sun, Dec 27, 2009 at 2:47 PM, Balbir Singh <balbir@linux.vnet.ibm.com> wrote: > * Kirill A. Shutemov <kirill@shutemov.name> [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.
> 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
> 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? [unhandled content-type:application/octet-stream] | |