Messages in this thread | | | Date | Fri, 10 Jul 2015 15:47:40 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 2/5] kmod: Use system_unbound_wq instead of khelper |
| |
On Fri, Jul 10, 2015 at 12:44:06AM +0200, Oleg Nesterov wrote: > On 07/09, Frederic Weisbecker wrote: > > > > We need to launch the usermodehelper kernel threads with the widest > > affinity and this is why we have khelper for. This workqueue has unbound > > properties and thus a wide affinity inherited by all its children. > > > > Now khelper also has special properties that we aren't much interested > > in: ordered and singlethread. There is really no need about ordering as > > all we do is creating kernel threads. This can be done concurrently. > > And singlethread is a useless limitation as well. > > > > The workqueue engine already proposes generic unbound workqueues that > > don't share these useless properties and handle well parallel jobs. > > > > Lets just use them. > > > > Suggested-by: Oleg Nesterov <oleg@redhat.com> > > Well yes, but it seems that you missed another part of my email ;) > > If we just change usermodehelper to use system_unbound_wq then we > probably should keep set_cpus_allowed_ptr() removed by 4/5. > > Note that system_unbound_wq has ->no_numa == F, so its worker threads > are NUMA bound. Perhaps this is not that bad, I do not know. But at > least this means that 4/5 needs more documentation/justification.
Duh! I really thought it was one thread wide affine. I didn't see that while testing because my box is not NUMA and so I saw a global affinity.
Now perhaps it is a good thing in the end. At least in nohz full it doesn't change anything as we affine that workqueue too. But we must be sure that a single NUMA node is enough to handle typical loads of usermodehelper.
If nobody can't tell, I suppose all we can do is stay conservative and create a global no_numa version of system_unbound_wq...
> > But as for this particular patch I obviously like it, khelper_wq > must die imo ;)
Sure :-)
| |