Skip to content
  • Tejun Heo's avatar
    workqueue: make the workqueues list RCU walkable · e2dca7ad
    Tejun Heo authored
    
    
    The workqueues list is protected by wq_pool_mutex and a workqueue and
    its subordinate data structures are freed directly on destruction.  We
    want to add the ability dump workqueues from a sysrq callback which
    requires walking all workqueues without grabbing wq_pool_mutex.  This
    patch makes freeing of workqueues RCU protected and makes the
    workqueues list walkable while holding RCU read lock.
    
    Note that pool_workqueues and pools are already sched-RCU protected.
    For consistency, workqueues are also protected with sched-RCU.
    
    While at it, reverse the workqueues list so that a workqueue which is
    created earlier comes before.  The order of the list isn't significant
    functionally but this makes the planned sysrq dump list system
    workqueues first.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    e2dca7ad