[GIT PULL] workqueue: Fixes for v6.9-rc6

From: Tejun Heo
Date: Mon Apr 29 2024 - 18:10:52 EST


The following changes since commit b1e6ec0a0fd0252af046e542f91234cd6c30b2cb:

Merge tag 'docs-6.9-fixes' of git://git.lwn.net/linux (2024-04-02 12:44:09 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git/ tags/wq-for-6.9-rc6-fixes

for you to fetch changes up to 91f098704c25106d88706fc9f8bcfce01fdb97df:

workqueue: Fix divide error in wq_update_node_max_active() (2024-04-24 07:23:06 -1000)

----------------------------------------------------------------
workqueue: Fixes for v6.9-rc6

Two doc update patches and the following three fixes:

- On single node systems, the default pool is used but the node_nr_active
for the default pool was set to min_active. This effectively limited the
max concurrency of unbound pools on single node systems to 8 causing
performance regressions on some workloads. Fixed by setting the default
pool's node_nr_active to max_active.

- wq_update_node_max_active() could trigger divide-by-zero if the
intersection between the allowed CPUs for an unbound workqueue and online
CPUs becomes empty.

- When kick_pool() was trying to repatriate a worker to a CPU in its pod by
setting task->wake_cpu, it didn't consider whether the CPU being selected
is online or not which obviously can lead to subobtimal behaviors. On
s390, this triggered a crash in arch code. The workqueue patch removes the
gross misbehavior but doesn't fix the crash completely as there's a race
window in which CPUs can go down after wake_cpu is set. Need to decide
whether the fix should be on the core or arch side.

----------------------------------------------------------------
Audra Mitchell (1):
Documentation/core-api: Update events_freezable_power references.

Lai Jiangshan (1):
workqueue: Fix divide error in wq_update_node_max_active()

Sven Schnelle (1):
workqueue: Fix selection of wake_cpu in kick_pool()

Tejun Heo (1):
workqueue: The default node_nr_active should have its max set to max_active

Xingyou Chen (1):
docs/zh_CN: core-api: Update translation of workqueue.rst to 6.9-rc1

Documentation/core-api/workqueue.rst | 6 +-
.../translations/zh_CN/core-api/workqueue.rst | 398 +++++++++++++++++++--
kernel/workqueue.c | 19 +-
3 files changed, 390 insertions(+), 33 deletions(-)