• Tejun Heo's avatar
    workqueue: add wokrqueue_struct->maydays list to replace mayday cpu iterators · 493a1724
    Tejun Heo authored
    Similar to how pool_workqueue iteration used to be, raising and
    servicing mayday requests is based on CPU numbers.  It's hairy because
    cpumask_t may not be able to handle WORK_CPU_UNBOUND and cpumasks are
    assumed to be always set on UP.  This is ugly and can't handle
    multiple unbound pools to be added for unbound workqueues w/ custom
    attributes.
    
    Add workqueue_struct->maydays.  When a pool_workqueue needs rescuing,
    it gets chained on the list through pool_workqueue->mayday_node and
    rescuer_thread() consumes the list until it's empty.
    
    This patch doesn't introduce any visible behavior changes.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reviewed-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
    493a1724
workqueue.c 103 KB