Commit 60aabb9a authored by Yogesh Lal's avatar Yogesh Lal Committed by Mukesh Ojha
Browse files

FROMGIT: driver core: Use unbound workqueue for deferred probes



Deferred probe usually runs only on pinned kworkers, which might take
longer time if a device contains multiple sub-devices. One such case
is of sound card on mobile devices, where we have good number of
mixers and controls per mixer.

We observed boot up improvement - deferred probes take ~600ms when bound
to little core kworker and ~200ms when deferred probe is queued on
unbound wq. This is due to scheduler moving the worker running deferred
probe work to big CPUs. Without this change, we see the worker is running
on LITTLE CPU due to affinity.

Since kworker runs deferred probe of several devices, the locality may
not be important. Also, init thread executing driver initcalls, can
potentially migrate as it has cpu affinity set to all cpus.In addition
to this, async probes use unbounded workqueue. So, using unbounded wq for
deferred probes looks to be similar to these w.r.t. scheduling behavior.

Bug: 184491346
Signed-off-by: default avatarYogesh Lal <ylal@codeaurora.org>
(cherry picked from commit e611f8cd
 git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-next)
Link: https://lore.kernel.org/r/1616583698-6398-1-git-send-email-ylal@codeaurora.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: I4ab97d56a35fdd8c51386aa18e45655ce5360846
Signed-off-by: default avatarMukesh Ojha <mojha@codeaurora.org>
parent 519c8c6b
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment