[libvirt-users] cgroup error starting domains
Daniel P. Berrange
berrange at redhat.com
Fri Jun 7 11:15:27 UTC 2013
On Fri, Jun 07, 2013 at 01:07:01PM +0200, Matteo Bernardini wrote:
> Thanks Daniel for helping with this :)
>
> # cat /proc/mounts
[snip]
> cgroup /sys/fs/cgroup cgroup rw,relatime,bfqio,hugetlb,perf_event,blkio,net_cls,freezer,devices,memory,cpuacct,cpu,cpuset,clone_children
Ok so here you've mounted all the cgroups controllers at the same
place. This is really strongly recommended against. It is better
to mount each controller separately at
/sys/fs/cgroup/<controller name>
and have /sys/fs/cgroup as a tmpfs.
http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
eg to get something along the lines of:
$ ls -l /sys/fs/cgroup/
total 0
drwxr-xr-x. 3 root root 0 Jun 3 09:41 blkio
lrwxrwxrwx. 1 root root 11 Jun 3 09:41 cpu -> cpu,cpuacct
lrwxrwxrwx. 1 root root 11 Jun 3 09:41 cpuacct -> cpu,cpuacct
drwxr-xr-x. 3 root root 0 Jun 3 09:41 cpu,cpuacct
drwxr-xr-x. 3 root root 0 Jun 3 09:41 cpuset
drwxr-xr-x. 3 root root 0 Jun 3 09:41 devices
drwxr-xr-x. 3 root root 0 Jun 3 09:41 freezer
drwxr-xr-x. 3 root root 0 Jun 3 09:41 memory
drwxr-xr-x. 2 root root 0 Jun 3 09:41 net_cls
drwxr-xr-x. 2 root root 0 Jun 3 09:41 perf_event
drwxr-xr-x. 4 root root 0 Jun 3 09:42 systemd
$ grep cgroup /proc/mounts
tmpfs /sys/fs/cgroup tmpfs rw,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
(obviously the 'system' mount point is not required if not using systemd).
> in /etc/libvirt/qemu.conf I uncommented this line
>
> cgroup_controllers = [ "cpu", "devices", "memory", "blkio", "cpuset",
> "cpuacct" ]
And this, together with your mount setup is what causes the problem.
Here you have told libvirt to *only* use those 6 listed cgroups controllers,
but because you've mounted all 9 controllers at the same mount point,
it is impossible for libvirt to satisfy the config you requested. It can't
use the 6 controllers you asked for, without also using the other 3 you have
excluded in the config.
Either comment out that cgroup_controllers setting (to let libvirt do
auto-detection of mounts), or switch to using a separate mount per
controller, or both.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvirt-users
mailing list