Re: [patch] cpusets: allow PF_THREAD_BOUND kworkers to escape froma cpuset

From: Mike Galbraith
Date: Fri Sep 23 2011 - 05:42:23 EST


On Fri, 2011-09-23 at 02:12 -0700, David Rientjes wrote:
> On Fri, 23 Sep 2011, Mike Galbraith wrote:
>
> > Done, your ACK added as well.
> >
> > kworkers can be born in a cpuset, leaving them adrift on an unsinkable ship.
> > Allow them to be moved to the root cpuset so the cpuset can be destroyed.
> >
>
> Thanks Li for the cc since I introduced this flag.
>
> Does this even work?

Yup, but..

> You've modified cpuset_can_attach() to allow the attach for the cgroup
> interface, but the actual function that attaches the task in the cpuset
> code should fail since it does set_cpus_allowed_ptr() which should return
> -EINVAL because of the PF_THREAD_BOUND. That should have emitted a
> WARN_ON() if this patch was tested.

..you're right that it warns. It was tested, but I didn't notice that
it had griped at me.

> kworkers can always move themselves to the root cpuset, so that's probably
> the better way of handling this than requiring userspace to do so.

kworker is sleeping in a cpuset that the user wants to depopulate and
destroy. I wasn't requiring the user to do that, was allowing him to.

> And it seems like the workqueue code has a comment specifically about cpu
> hotplug and why changing their cpumask shouldn't be allowed that was added
> by Tejun Heo in db7bccf45cb8 ("workqueue: reimplement CPU hotplugging
> support using trustee"). So let's cc him here as well at his
> non-kernel.org address.

No, we don't want top muck around with their masks.

-Mike

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