• Lai Jiangshan's avatar
    workqueue: better define synchronization rule around rescuer->pool updates · b3104104
    Lai Jiangshan authored
    Rescuers visit different worker_pools to process work items from pools
    under pressure.  Currently, rescuer->pool is updated outside any
    locking and when an outsider looks at a rescuer, there's no way to
    tell when and whether rescuer->pool is gonna change.  While this
    doesn't currently cause any problem, it is nasty.
    
    With recent worker_maybe_bind_and_lock() changes, we can move
    rescuer->pool updates inside pool locks such that if rescuer->pool
    equals a locked pool, it's guaranteed to stay that way until the pool
    is unlocked.
    
    Move rescuer->pool inside pool->lock.
    
    This patch doesn't introduce any visible behavior difference.
    
    tj: Updated the description.
    Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    b3104104
workqueue_internal.h 2.03 KB