• Lai Jiangshan's avatar
    workqueue: restore POOL_MANAGING_WORKERS · 552a37e9
    Lai Jiangshan authored
    This patch restores POOL_MANAGING_WORKERS which was replaced by
    pool->manager_mutex by 60373152 "workqueue: use mutex for global_cwq
    manager exclusion".
    
    There's a subtle idle worker depletion bug across CPU hotplug events
    and we need to distinguish an actual manager and CPU hotplug
    preventing management.  POOL_MANAGING_WORKERS will be used for the
    former and manager_mutex the later.
    
    This patch just lays POOL_MANAGING_WORKERS on top of the existing
    manager_mutex and doesn't introduce any synchronization changes.  The
    next patch will update it.
    
    Note that this patch fixes a non-critical anomaly where
    too_many_workers() may return %true spuriously while CPU hotplug is in
    progress.  While the issue could schedule idle timer spuriously, it
    didn't trigger any actual misbehavior.
    
    tj: Rewrote patch description.
    Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    552a37e9
workqueue.c 103 KB