mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, Lai Jiangshan <jiangshanlai@gmail.com>
Subject: [GIT PULL] workqueue: Changes for v6.6
Date: Thu, 31 Aug 2023 12:19:54 -1000	[thread overview]
Message-ID: <ZPESClTTFQ0xo6ku@slm.duckdns.org> (raw)

The following changes since commit aa6fde93f3a49e42c0fe0490d7f3711bac0d162e:

  workqueue: Scale up wq_cpu_intensive_thresh_us if BogoMIPS is below 4000 (2023-07-25 11:49:57 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git/ tags/wq-for-6.6

for you to fetch changes up to fe48ba7daefe75bbbefa2426deddc05f2d530d2d:

  workqueue: fix data race with the pwq->stats[] increment (2023-08-29 09:52:16 -1000)

----------------------------------------------------------------
workqueue: Changes for v6.6

* Unbound workqueues now support more flexible affinity scopes. The default
  behavior is to soft-affine according to last level cache boundaries. A
  work item queued from a given LLC is executed by a worker running on the
  same LLC but the worker may be moved across cache boundaries as the
  scheduler sees fit. On machines which multiple L3 caches, which are
  becoming more popular along with chiplet designs, this improves cache
  locality while not harming work conservation too much.

  Unbound workqueues are now also a lot more flexible in terms of execution
  affinity. Differeing levels of affinity scopes are supported and both the
  default and per-workqueue affinity settings can be modified dynamically.
  This should help working around amny of sub-optimal behaviors observed
  recently with asymmetric ARM CPUs.

  This involved signficant restructuring of workqueue code. Nothing was
  reported yet but there's some risk of subtle regressions. Should keep an
  eye out.

* Rescuer workers now has more identifiable comms.

* workqueue.unbound_cpus added so that CPUs which can be used by workqueue
  can be constrained early during boot.

* Now that all the in-tree users have been flushed out, trigger warning if
  system-wide workqueues are flushed.

* One pull commit from for-6.5-fixes to avoid cascading conflicts in the
  affinity scope patchset.

----------------------------------------------------------------
Aaron Tomlin (1):
      workqueue: Rename rescuer kworker

Mirsad Goran Todorovac (1):
      workqueue: fix data race with the pwq->stats[] increment

Tejun Heo (27):
      workqueue: Merge branch 'for-6.5-fixes' into for-6.6
      workqueue: Drop the special locking rule for worker->flags and worker_pool->flags
      workqueue: Cleanups around process_scheduled_works()
      workqueue: Not all work insertion needs to wake up a worker
      workqueue: Rename wq->cpu_pwqs to wq->cpu_pwq
      workqueue: Relocate worker and work management functions
      workqueue: Remove module param disable_numa and sysfs knobs pool_ids and numa
      workqueue: Use a kthread_worker to release pool_workqueues
      workqueue: Make per-cpu pool_workqueues allocated and released like unbound ones
      workqueue: Call wq_update_unbound_numa() on all CPUs in NUMA node on CPU hotplug
      workqueue: Make unbound workqueues to use per-cpu pool_workqueues
      workqueue: Rename workqueue_attrs->no_numa to ->ordered
      workqueue: Rename NUMA related names to use pod instead
      workqueue: Move wq_pod_init() below workqueue_init()
      workqueue: Initialize unbound CPU pods later in the boot
      workqueue: Factor out actual cpumask calculation to reduce subtlety in wq_update_pod()
      workqueue: Factor out clearing of workqueue-only attrs fields
      workqueue: Generalize unbound CPU pods
      workqueue: Add tools/workqueue/wq_dump.py which prints out workqueue configuration
      workqueue: Modularize wq_pod_type initialization
      workqueue: Add multiple affinity scopes and interface to select them
      workqueue: Factor out work to worker assignment and collision handling
      workqueue: Factor out need_more_worker() check and worker wake-up
      workqueue: Add workqueue_attrs->__pod_cpumask
      workqueue: Implement non-strict affinity scope for unbound workqueues
      workqueue: Add "Affinity Scopes and Performance" section to documentation
      workqueue: Make default affinity_scope dynamically updatable

Tetsuo Handa (1):
      workqueue: Warn attempt to flush system-wide workqueues.

Yang Yingliang (1):
      workqueue: use LIST_HEAD to initialize cull_list

tiozhang (1):
      workqueue: add cmdline parameter `workqueue.unbound_cpus` to further constrain wq_unbound_cpumask at boot time

 Documentation/admin-guide/kernel-parameters.txt |   28 +-
 Documentation/core-api/workqueue.rst            |  356 ++++-
 include/linux/workqueue.h                       |  115 +-
 init/main.c                                     |    1 +
 kernel/workqueue.c                              | 1618 +++++++++++++----------
 kernel/workqueue_internal.h                     |    2 +-
 tools/workqueue/wq_dump.py                      |  177 +++
 tools/workqueue/wq_monitor.py                   |   21 +-
 8 files changed, 1513 insertions(+), 805 deletions(-)
 create mode 100644 tools/workqueue/wq_dump.py

-- 
tejun

             reply	other threads:[~2023-08-31 22:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-31 22:19 Tejun Heo [this message]
2023-09-01 23:20 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZPESClTTFQ0xo6ku@slm.duckdns.org \
    --to=tj@kernel.org \
    --cc=jiangshanlai@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome