Re: [RFC/RFT PATCH v3] sched: automated per tty task groups

From: Vivek Goyal
Date: Tue Nov 16 2010 - 15:18:52 EST


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@xxxxxxxxxxxxxxxxxxxx> 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
--
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/