Messages in this thread | | | Date | Tue, 16 Nov 2010 15:17:57 -0500 | From | Vivek Goyal <> | Subject | Re: [RFC/RFT PATCH v3] sched: automated per tty task groups |
| |
On Tue, Nov 16, 2010 at 11:56:33AM -0800, Paul Menage wrote: > On Tue, Nov 16, 2010 at 11:45 AM, Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > In a system daemon? Good luck with that. It's a nightmare. Maybe you > > could just poll all the cgroups, and try to remove them once a minute, > > and if they are empty it works. Or something like that. But what a > > hacky thing it would be. > > There's an existing cgroups API - release_agent and notify_on_release > - whereby the kernel will spawn a userspace command once a given > cgroup is completely empty. It's intended for pretty much exactly this > purpose.
Yes. And it seems to be working just fine for me. I modiefied Lennart's script a bit to achieve that.
Addition to my .bashrc.
if [ "$PS1" ] ; then mkdir -m 0700 -p /cgroup/cpu/$$ echo 1 > /cgroup/cpu/$$/notify_on_release echo $$ > /cgroup/cpu/$$/tasks fi
I created one file /bin/rmcgroup to clean up the cgroup.
#!/bin/bash rmdir /cgroup/cpu/$1
And did following to mount cgroup and setup empty group notification.
mount -t cgroup -o cpu none /cgroup/cpu echo "/bin/rmcgroup" > /cgroup/cpu/release_agent
And it works fine. Upon ssh to my box, a cpu cgroup is automatically created and upon exiting the shell, this group is automatically destroyed.
So API/interface for automatically reclaiming the cgroup once it is empty seems to be pretty simple and works.
Thanks Vivek
| |