• L
    workqueue: allow more off-queue flag space · 45d9550a
    Lai Jiangshan 提交于
    When a work item is off-queue, its work->data contains WORK_STRUCT_*
    and WORK_OFFQ_* flags.  As WORK_OFFQ_* flags are used only while a
    work item is off-queue, it can occupy bits of work->data which aren't
    used while off-queue.  WORK_OFFQ_* currently only use bits used by
    on-queue CWQ pointer.  As color bits aren't used while off-queue,
    there's no reason to not use them.
    
    Lower WORK_OFFQ_FLAG_BASE from WORK_STRUCT_FLAG_BITS to
    WORK_STRUCT_COLOR_SHIFT thus giving 4 more bits to off-queue flag
    space which is also used to record worker_pool ID while off-queue.
    
    This doesn't introduce any visible behavior difference.
    
    tj: Rewrote the description.
    Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: NTejun Heo <tj@kernel.org>
    45d9550a
workqueue.h 15.1 KB