• Lai Jiangshan's avatar
    workqueue: Always queue work items to the newest PWQ for order workqueues · 58629d48
    Lai Jiangshan authored
    To ensure non-reentrancy, __queue_work() attempts to enqueue a work
    item to the pool of the currently executing worker. This is not only
    unnecessary for an ordered workqueue, where order inherently suggests
    non-reentrancy, but it could also disrupt the sequence if the item is
    not enqueued on the newest PWQ.
    
    Just queue it to the newest PWQ and let order management guarantees
    non-reentrancy.
    Signed-off-by: default avatarLai Jiangshan <jiangshan.ljs@antgroup.com>
    Fixes: 4c065dbc ("workqueue: Enable unbound cpumask update on ordered workqueues")
    Cc: stable@vger.kernel.org # v6.9+
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    (cherry picked from commit 74347be3edfd11277799242766edf844c43dd5d3)
    58629d48
workqueue.c 223 KB