[Devel] Re: cgroup tasks file error
Matt Helsley
matthltc at us.ibm.com
Mon Dec 13 17:02:43 PST 2010
On Mon, Dec 13, 2010 at 05:16:28PM -0600, Serge E. Hallyn wrote:
> Quoting ccmail111 (ccmail111 at yahoo.com):
> >
> > I see error:[host:/dev/cgroup]$ echo 693 > hello-test/tasks
> > -bash: echo: write error: No space left on device
This does seem quite odd so I spent a little time looking
at this and I agree with Serge.
> > [host:/dev/cgroup]$ pwd/dev/cgroup
> >
> > But the user process is up and running..
> >
> > [host:/dev/cgroup]$ ps aux | grep procroot
> >
> > 693 0.0 0.4 34720 1112 ttyS0 Sl 19:11 0:00 /opt/bin/myproc -ext
> >
> > Also the cgroup exists and valid..
> >
> > [host:/dev/cgroup]$ ls | grep hello-test
> > hello-test
> >
> > What above error mean and any suggestions ?
> > Please email.
>
> Which cgroups do you have composed on that mount? I'm guess you
> have cpuset, and you need to set the cpuset.mems and cpuset.cpus.
> Until you do that, no tasks can be assigned to it.
I looked a a few places in kernel/cgroup.c which return ENOSPC
or could potentially forward such an error. The only place that
fits is in the attach path and is consistent with the notion that
it's a cpuset issue:
echo <pid> > tasks =>
cgroup_tasks_write() =>
attach_task_by_pid() =>
cgroup_attach_task() => (via ss->can_attach() where ss is the cpuset subsystem)
cpuset_can_attach():
if (cpumask_empty(cs->cpus_allowed) || nodes_empty(cs->mems_allowed))
return -ENOSPC;
No other cgroup subsystem that I looked at (freezer, memcontrol, ns,
blkio, devcgroup) returns ENOSPC when attaching a task.
So not only do you need to set those masks but each mask must have at
least one cpu and "mem" respectively.
Cheers,
-Matt Helsley
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list