• Linus Torvalds's avatar
    Merge tag 'wq-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · b02c520f
    Linus Torvalds authored
    Pull workqueue updates from Tejun Heo:
    
     - Lai fixed a bug where CPU hotplug and workqueue attribute changes
       race leaving some workqueues not fully updated. This involved
       refactoring and changing how online CPUs are tracked. The resulting
       code is cleaner.
    
     - Workqueue watchdog touch operation was causing too much cacheline
       contention on very large machines. Nicholas improved scalabililty by
       avoiding unnecessary global updates.
    
     - Code cleanups and minor rescuer behavior improvement.
    
     - The last commit 58629d48 ("workqueue: Always queue work items to
       the newest PWQ for order workqueues") is a cherry-picked straggler
       commit from for-6.10-fixes, a fix for a bug which may not actually
       trigger.
    
    * tag 'wq-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (24 commits)
      workqueue: Always queue work items to the newest PWQ for order workqueues
      workqueue: Rename wq_update_pod() to unbound_wq_update_pwq()
      workqueue: Remove the arguments @hotplug_cpu and @online from wq_update_pod()
      workqueue: Remove the argument @cpu_going_down from wq_calc_pod_cpumask()
      workqueue: Remove the unneeded cpumask empty check in wq_calc_pod_cpumask()
      workqueue: Remove cpus_read_lock() from apply_wqattrs_lock()
      workqueue: Simplify wq_calc_pod_cpumask() with wq_online_cpumask
      workqueue: Add wq_online_cpumask
      workqueue: Init rescuer's affinities as the wq's effective cpumask
      workqueue: Put PWQ allocation and WQ enlistment in the same lock C.S.
      workqueue: Move kthread_flush_worker() out of alloc_and_link_pwqs()
      workqueue: Make rescuer initialization as the last step of the creation of a new wq
      workqueue: Register sysfs after the whole creation of the new wq
      workqueue: Simplify goto statement
      workqueue: Update cpumasks after only applying it successfully
      workqueue: Improve scalability of workqueue watchdog touch
      workqueue: wq_watchdog_touch is always called with valid CPU
      workqueue: Remove useless pool->dying_workers
      workqueue: Detach workers directly in idle_cull_fn()
      workqueue: Don't bind the rescuer in the last working cpu
      ...
    b02c520f
workqueue.c 223 KB