• T
    workqueue: implement high priority workqueue · 649027d7
    Tejun Heo 提交于
    This patch implements high priority workqueue which can be specified
    with WQ_HIGHPRI flag on creation.  A high priority workqueue has the
    following properties.
    
    * A work queued to it is queued at the head of the worklist of the
      respective gcwq after other highpri works, while normal works are
      always appended at the end.
    
    * As long as there are highpri works on gcwq->worklist,
      [__]need_more_worker() remains %true and process_one_work() wakes up
      another worker before it start executing a work.
    
    The above two properties guarantee that works queued to high priority
    workqueues are dispatched to workers and start execution as soon as
    possible regardless of the state of other works.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    649027d7
workqueue.c 93.3 KB