• Tejun Heo's avatar
    workqueue: Factor out clearing of workqueue-only attrs fields · 5de7a03c
    Tejun Heo authored
    workqueue_attrs can be used for both workqueues and worker_pools. However,
    some fields, currently only ->ordered, only apply to workqueues and should
    be cleared to the default / invalid values.
    
    Currently, an unbound workqueue explicitly clears attrs->ordered in
    get_unbound_pool() after copying the source workqueue attrs, while per-cpu
    workqueues rely on the fact that zeroing on allocation gives us the desired
    default value for pool->attrs->ordered.
    
    This is fragile. Let's add wqattrs_clear_for_pool() which clears
    attrs->ordered and is called from both init_worker_pool() and
    get_unbound_pool(). This will ease adding more workqueue-only attrs fields.
    
    In get_unbound_pool(), pool->node initialization is moved upwards for
    readability. This shouldn't cause any behavior changes.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    5de7a03c
workqueue.c 180 KB