Messages in this thread | | | Date | Fri, 18 Jul 2008 08:46:55 -0700 | From | "Paul Menage" <> | Subject | Re: [RFC] How to handle the rules engine for cgroups |
| |
On Fri, Jul 18, 2008 at 2:52 AM, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > > For example, create a new file under memory cgroup > == > /opt/memory_cgroup/group_A/notify_at_memory_reach_limit > == > And a user watches the file by inotify. > The kernel modify modified-time of notify_at_memory_reach_limit file and call > fs/notify_user.c::notify_change() against this inode. He can catchthe event > by inotify. > (I think he can also catch removal of this file, etc...) >
We've been doing something like this to handle OOMs in userspace, with pretty good success. The approach that we used so far was a custom control file tied to a wait queue, that gets woken when a cgroup triggers OOM, but it's a bit hacky. I've been considering some kind of more generic approach that could be reused by different subsystems for other notifications, maybe using eventfd or maybe netlink.
inotify would be an option too, but that seems like it might be forcing ourselves into filesystem semantics too much.
Paul
| |