cpusets in non-unified hierarchy broken?
From: Serge Hallyn
Date: Thu Feb 12 2015 - 16:50:00 EST
Hi,
as of some point in 3.18, cpuset.cpus doesn't seem to be
enforced any more. I don't see an obvious reason in the
code, but it seems likely to be related to the effective_cpus.
If I mount -t cgroup -o cpuset cpuset /mnt and then mkdir /mnt/lxc,
then /mnt/lxc has:
====================================================
ubuntu@cpuset1:~$ cat /mnt/lxc/cpuset.effective_cpus
ubuntu@cpuset1:~$ cat /mnt/lxc/cpuset.cpus
0-3
====================================================
while
====================================================
ubuntu@cpuset1:~$ cat /mnt/cpuset.effective_cpus
0-3
ubuntu@cpuset1:~$ cat /mnt/cpuset.cpus
0-3
====================================================
My understanding is that effective_cpus in /lxc should be
the /cpuset.effective_cpus & /lxc/cpuset.cpus. But that
doesn't seem to be the case. So then, when I start a
container confined to a single cpu (which will use cgroup
/lxc/c1, for instance) then it looks like:
====================================================
ubuntu@cpuset1:~$ cat /mnt/lxc/v1/cpuset.effective_cpus
ubuntu@cpuset1:~$ cat /mnt/lxc/v1/cpuset.cpus
1
====================================================
While the /proc/self/status inside that container and cgroup
shows:
====================================================
root@v1:~# grep -i cpu /proc/self/status
Cpus_allowed: f
Cpus_allowed_list: 0-3
====================================================
Christian, who originally found this and reported it at
https://github.com/lxc/lxc/issues/427 , also tested that in fact
the tasks are not confined (so it's not just an issue of
improper reporting, it seems)
thanks,
-serge
--
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/