• Tejun Heo's avatar
    workqueue: move global_cwq->lock to worker_pool · d565ed63
    Tejun Heo authored
    Move gcwq->lock to pool->lock.  The conversion is mostly
    straight-forward.  Things worth noting are
    
    * In many places, this removes the need to use gcwq completely.  pool
      is used directly instead.  get_std_worker_pool() is added to help
      some of these conversions.  This also leaves get_work_gcwq() without
      any user.  Removed.
    
    * In hotplug and freezer paths, the pools belonging to a CPU are often
      processed together.  This patch makes those paths hold locks of all
      pools, with highpri lock nested inside, to keep the conversion
      straight-forward.  These nested lockings will be removed by
      following patches.
    
    This is part of an effort to remove global_cwq and make worker_pool
    the top level abstraction, which in turn will help implementing worker
    pools with user-specified attributes.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reviewed-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    d565ed63
workqueue.c 107 KB