• Tejun Heo's avatar
    workqueue: Make per-cpu pool_workqueues allocated and released like unbound ones · 687a9aa5
    Tejun Heo authored
    Currently, all per-cpu pwq's (pool_workqueue's) are allocated directly
    through a per-cpu allocation and thus, unlike unbound workqueues, not
    reference counted. This difference in lifetime management between the two
    types is a bit confusing.
    
    Unbound workqueues are currently accessed through wq->numa_pwq_tbl[] which
    isn't suitiable for the planned CPU locality related improvements. The plan
    is to unify pwq handling across per-cpu and unbound workqueues so that
    they're always accessed through wq->cpu_pwq.
    
    In preparation, this patch makes per-cpu pwq's to be allocated, reference
    counted and released the same way as unbound pwq's. wq->cpu_pwq now holds
    pointers to pwq's instead of containing them directly.
    
    pwq_unbound_release_workfn() is renamed to pwq_release_workfn() as it's now
    also used for per-cpu work items.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    687a9aa5
workqueue.c 181 KB