Apparently, there is a comparable alternative to the 200-line kernel patch
that involves no kernel upgrade.
It is presented here and discussed here.
However, I am not sure if webupd8's solution (under the
section "Use it in Ubuntu") on Ubuntu actually works or not. In particular, one
commenter on ./ is saying he's getting an error message. Could anyone
post the "correct" method that actually works?
Suggested solution:
Based on the comments I've read so far, the following seems to work.
(1) In /etc/rc.local
, add the following lines to above exit 0
:
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
(2) Create a file named /usr/local/sbin/cgroup_clean
with the following content:
#!/bin/sh
rmdir /dev/cgroup/cpu/$1
(3) In your ~/.bashrc
, add:
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi
(4) (To make sure the execution bit is on) execute
sudo chmod +x /usr/local/sbin/cgroup_clean /etc/rc.local
(5) Reboot.
Best Answer
The answer above should indeed fix the terminal error message. Gödel, I'm not sure that I understood your point. I'll try to explain the change:
Since the default value of notify_on_release at creation of other cgroups is the current value of their parents notify_on_release setting, setting the value of /dev/cgroup/cpu/user/notify_on_release to 1 would make sure that every child cgroup had notify_on_release enabled and thus the release_agent would be ran. Unfortunately, when the last child cgroup of "user" was removed (by the release_agent), that folder would also be removed, leading to the error messages reported. A simple workaround is to enable notify_on_release for each cgroup individually at creation, keeping the parents setting disabled.
Hope that was easy to follow!
Edit: I'd have posted this as a comment to the actual answer, though it's seems I don't have enough reputation to do so (yet).