Re: [RFC workqueue/driver-core PATCH 1/5] workqueue: Provide queue_work_near to queue work near a given NUMA node
From: Alexander Duyck
Date: Wed Sep 26 2018 - 18:06:50 EST
On 9/26/2018 2:53 PM, Tejun Heo wrote:
Hello,
On Wed, Sep 26, 2018 at 02:51:38PM -0700, Alexander Duyck wrote:
This patch provides a new function queue_work_near which is meant to
schedule work on the nearest unbound CPU to the requested NUMA node. The
main motivation for this is to help assist asynchronous init to better
improve boot times for devices that are local to a specific node.
Signed-off-by: Alexander Duyck <alexander.h.duyck@xxxxxxxxxxxxxxx>
Why not just use unbound workqueues, which are NUMA-affine by default?
Are there big enough advantages?
Thanks.
I am using unbound workqueues. However there isn't an interface that
exposes the NUMA bits of them directly. All I am doing with this patch
is adding "queue_work_near" which takes a NUMA node as an argument and
then copies the logic of "queue_work_on" with the exception that I am
doing a check to verify that there is an intersection between
wq_unbound_cpumask and the cpumask of the node, and then passing a CPU
from that intersection into "__queue_work".
Thanks.
- Alex