• Tejun Heo's avatar
    workqueue: determine NUMA node of workers accourding to the allowed cpumask · f3f90ad4
    Tejun Heo authored
    When worker tasks are created using kthread_create_on_node(),
    currently only per-cpu ones have the matching NUMA node specified.
    All unbound workers are always created with NUMA_NO_NODE.
    
    Now that an unbound worker pool may have an arbitrary cpumask
    associated with it, this isn't optimal.  Add pool->node which is
    determined by the pool's cpumask.  If the pool's cpumask is contained
    inside a NUMA node proper, the pool is associated with that node, and
    all workers of the pool are created on that node.
    
    This currently only makes difference for unbound worker pools with
    cpumask contained inside single NUMA node, but this will serve as
    foundation for making all unbound pools NUMA-affine.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reviewed-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    f3f90ad4
workqueue.c 124 KB