Messages in this thread | | | Date | Fri, 13 Sep 2013 16:40:08 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC] Restrict kernel spawning of threads to a specified set of cpus. |
| |
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.
| |