lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZPESClTTFQ0xo6ku@slm.duckdns.org>
Date:   Thu, 31 Aug 2023 12:19:54 -1000
From:   Tejun Heo <tj@...nel.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     linux-kernel@...r.kernel.org,
        Lai Jiangshan <jiangshanlai@...il.com>
Subject: [GIT PULL] workqueue: Changes for v6.6

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ