Re: [RFC] Restrict kernel spawning of threads to a specified set ofcpus.

From: Peter Zijlstra
Date: Fri Sep 13 2013 - 10:40:29 EST


On Fri, Sep 13, 2013 at 01:54:53PM +0000, Christoph Lameter wrote:
>
> > > If we really want to solve that race, then may be we can think of a kernel_parameter
> >
> > No bloody kernel params. I'd much rather create a pointless kthread to
> > act as usermodehelper parent that people can set context on (move it
> > into cgroups, set affinity, whatever) so it automagically propagates to
> > all userspace helper thingies.
> >
> > Is there anything other than usermodehelper we need to be concerned
> > with? One that comes to mind would be unbound workqueue threads. Do we
> > want to share the parent with usermodehelpers or have these two classes
> > have different parents?
>
> So you want to keep those silly racy move-all-threads-to-some-cpus scripts
> around?

No, creating a parent for them closes the race. It should also makes it
lots easier to find the kids by using ppid.

> A kernel parameter would allow a clean bootup with threads
> starting out on the specific processors we want them to.

Blergh, no. A kernel should boot, a kernel should allow you to configure
things, a kernel should not be limited to boot time settings.

> Also there is even more work ahead to deal with things like kswapd,
> writeback threads, compaction and various other scanners that should also
> be restricted. Mostly one thread per node is sufficient. This is not
> simple to do from user space.

IIRC we have one kswapd per node, not sure about the others. And why is
this not simple from userspace? All these are long-running threads and
from a quick look they can have their affinity changed.


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