linux/drivers
Linus Torvalds 72dc6db7e3 workqueue: Ordered workqueue creation cleanups
For historical reasons, unbound workqueues with max concurrency limit of 1
 are considered ordered, even though the concurrency limit hasn't been
 system-wide for a long time. This creates ambiguity around whether ordered
 execution is actually required for correctness, which was actually confusing
 for e.g. btrfs (btrfs updates are being routed through the btrfs tree).
 
 There aren't that many users in the tree which use the combination and there
 are pending improvements to unbound workqueue affinity handling which will
 make inadvertent use of ordered workqueue a bigger loss. This pull request
 clarifies the situation for most of them by updating the ones which require
 ordered execution to use alloc_ordered_workqueue().
 
 There are some conversions being routed through subsystem-specific trees and
 likely a few stragglers. Once they're all converted, workqueue can trigger a
 warning on unbound + @max_active==1 usages and eventually drop the implicit
 ordered behavior.
 -----BEGIN PGP SIGNATURE-----
 
 iIQEABYIACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCZJoKnA4cdGpAa2VybmVs
 Lm9yZwAKCRCxYfJx3gVYGc5SAQDOtjML7Cx9AYzbY5+nYc0wTebRRTXGeOu7A3Xy
 j50rVgEAjHgvHLIdmeYmVhCeHOSN4q7Wn5AOwaIqZalOhfLyKQk=
 =hs79
 -----END PGP SIGNATURE-----

Merge tag 'wq-for-6.5-cleanup-ordered' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq

Pull ordered workqueue creation updates from Tejun Heo:
 "For historical reasons, unbound workqueues with max concurrency limit
  of 1 are considered ordered, even though the concurrency limit hasn't
  been system-wide for a long time.

  This creates ambiguity around whether ordered execution is actually
  required for correctness, which was actually confusing for e.g. btrfs
  (btrfs updates are being routed through the btrfs tree).

  There aren't that many users in the tree which use the combination and
  there are pending improvements to unbound workqueue affinity handling
  which will make inadvertent use of ordered workqueue a bigger loss.

  This clarifies the situation for most of them by updating the ones
  which require ordered execution to use alloc_ordered_workqueue().

  There are some conversions being routed through subsystem-specific
  trees and likely a few stragglers. Once they're all converted,
  workqueue can trigger a warning on unbound + @max_active==1 usages and
  eventually drop the implicit ordered behavior"

* tag 'wq-for-6.5-cleanup-ordered' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
  rxrpc: Use alloc_ordered_workqueue() to create ordered workqueues
  net: qrtr: Use alloc_ordered_workqueue() to create ordered workqueues
  net: wwan: t7xx: Use alloc_ordered_workqueue() to create ordered workqueues
  dm integrity: Use alloc_ordered_workqueue() to create ordered workqueues
  media: amphion: Use alloc_ordered_workqueue() to create ordered workqueues
  scsi: NCR5380: Use default @max_active for hostdata->work_q
  media: coda: Use alloc_ordered_workqueue() to create ordered workqueues
  crypto: octeontx2: Use alloc_ordered_workqueue() to create ordered workqueues
  wifi: ath10/11/12k: Use alloc_ordered_workqueue() to create ordered workqueues
  wifi: mwifiex: Use default @max_active for workqueues
  wifi: iwlwifi: Use default @max_active for trans_pcie->rba.alloc_wq
  xen/pvcalls: Use alloc_ordered_workqueue() to create ordered workqueues
  virt: acrn: Use alloc_ordered_workqueue() to create ordered workqueues
  net: octeontx2: Use alloc_ordered_workqueue() to create ordered workqueues
  net: thunderx: Use alloc_ordered_workqueue() to create ordered workqueues
  greybus: Use alloc_ordered_workqueue() to create ordered workqueues
  powerpc, workqueue: Use alloc_ordered_workqueue() to create ordered workqueues
2023-06-27 16:46:06 -07:00
..
accel accel/qaic: Call DRM helper function to destroy prime GEM 2023-06-20 08:07:29 -06:00
accessibility braille_console: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
acpi Power management updates for 6.5-rc1 2023-06-26 19:36:30 -07:00
amba ARM: tegra: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
android binder: fix UAF of alloc->vma in race with munmap() 2023-05-20 17:56:23 +01:00
ata ata: libata-scsi: Avoid deadlock on rescan after device resume 2023-06-18 12:00:49 +09:00
atm
auxdisplay auxdisplay: Switch i2c drivers back to use .probe() 2023-06-02 13:23:32 +02:00
base Power management updates for 6.5-rc1 2023-06-26 19:36:30 -07:00
bcma bcma: Add explicit of_device.h include 2023-04-14 15:32:56 +03:00
block for-6.5/block-2023-06-23 2023-06-26 12:47:20 -07:00
bluetooth Bluetooth: hci_qca: fix debugfs registration 2023-06-05 17:13:14 -07:00
bus modules-6.4-rc1 2023-04-27 16:36:55 -07:00
cdrom cdrom: Fix spectre-v1 gadget 2023-06-22 07:48:08 -06:00
cdx cdx: fix build failure due to sysfs 'bus_type' argument needing to be const 2023-04-27 16:21:32 -07:00
char for-6.5/splice-2023-06-23 2023-06-26 11:52:12 -07:00
clk Time, timekeeping and related device driver updates: 2023-06-26 14:10:45 -07:00
clocksource Scheduler changes for v6.5: 2023-06-27 14:03:21 -07:00
comedi
connector
counter - New Drivers 2023-05-02 10:41:31 -07:00
cpufreq cpufreq: intel_pstate: Fix energy_performance_preference for passive 2023-06-21 19:42:58 +02:00
cpuidle cpuidle: Use local_clock_noinstr() 2023-06-05 21:11:09 +02:00
crypto workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
cxl cxl: Explicitly initialize resources when media is not ready 2023-05-26 13:34:39 -07:00
dax
dca Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
devfreq PM / devfreq: mtk-cci: Fix variable deferencing before NULL check 2023-05-29 23:25:31 +09:00
dio
dma dmaengine: at_hdmac: Extend the Flow Controller bitfield to three bits 2023-05-24 11:20:28 +05:30
dma-buf udmabuf: revert 'Add support for mapping hugepages (v4)' 2023-06-19 13:19:32 -07:00
edac - Add initial support for RAS hardware found on AMD server GPUs (MI200). 2023-06-26 15:09:18 -07:00
eisa
extcon
firewire firewire: net: fix unexpected release of object for asynchronous request packet 2023-05-11 09:06:49 +09:00
firmware xen: branch for v6.5-rc1 2023-06-27 16:03:20 -07:00
fpga Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
fsi
gnss
gpio gpiolib: Fix irq_domain resource tracking for gpiochip_irqchip_add_domain() 2023-06-19 14:57:38 +02:00
gpu objtool changes for v6.5: 2023-06-27 15:05:41 -07:00
greybus greybus: Use alloc_ordered_workqueue() to create ordered workqueues 2023-05-08 13:52:27 -10:00
hid for-linus-2023060501 2023-06-06 04:36:02 -07:00
hsi
hte Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
hv x86/hyperv: Fix hyperv_pcpu_input_arg handling when CPUs go online/offline 2023-06-17 23:09:47 +00:00
hwmon hwmon: (k10temp) Add PCI ID for family 19, model 78h 2023-05-08 11:36:19 +02:00
hwspinlock hwspinlock: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
hwtracing arm64 updates for 6.5: 2023-06-26 17:11:53 -07:00
i2c i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle 2023-06-23 12:58:24 +02:00
i3c i3c: ast2600: set variable ast2600_i3c_ops storage-class-specifier to static 2023-04-30 23:50:26 +02:00
idle intel_idle: Add a "Long HLT" C1 state for the VM guest mode 2023-06-21 19:46:58 +02:00
iio iio: imu: inv_icm42600: fix timestamp reset 2023-05-20 17:33:14 +01:00
infiniband RCU pull request for v6.5 2023-06-27 10:37:01 -07:00
input Move the Arm architecture documentation under Documentation/arch/. This 2023-06-27 11:58:16 -07:00
interconnect modules-6.4-rc1 2023-04-27 16:36:55 -07:00
iommu Locking changes for v6.5: 2023-06-27 14:14:30 -07:00
ipack
irqchip ARM updates for v6.5-rc1 2023-06-26 17:07:53 -07:00
isdn Including fixes from netfilter. 2023-05-05 19:12:01 -07:00
leds leds: qcom-lpg: Fix PWM period limits 2023-06-03 17:00:28 +02:00
macintosh powerpc updates for 6.4 2023-04-28 16:24:32 -07:00
mailbox mailbox: mailbox-test: fix a locking issue in mbox_test_message_write() 2023-05-31 13:26:44 -05:00
mcb mcb-lpc: Reallocate memory region to avoid memory overlapping 2023-04-20 14:24:01 +02:00
md workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
media workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
memory ARM: SoC drivers for v6.4 2023-04-25 12:02:16 -07:00
memstick
message Objtool changes for v6.4: 2023-04-28 14:02:54 -07:00
mfd - New Drivers 2023-05-02 10:41:31 -07:00
misc objtool changes for v6.5: 2023-06-27 15:05:41 -07:00
mmc for-6.5/block-2023-06-23 2023-06-26 12:47:20 -07:00
most
mtd for-6.5/block-2023-06-23 2023-06-26 12:47:20 -07:00
mux
net workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
nfc nfc: fdp: Add MODULE_FIRMWARE macros 2023-06-18 11:19:52 +01:00
ntb
nubus nubus: Don't list slot resources by default 2023-05-22 13:51:56 +02:00
nvdimm
nvme for-6.5/block-2023-06-23 2023-06-26 12:47:20 -07:00
nvmem modules-6.4-rc1 2023-04-27 16:36:55 -07:00
of of: overlay: Fix missing of_node_put() in error case of init_overlay_changeset() 2023-06-09 16:12:37 -06:00
opp Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
parisc parisc: Replace regular spinlock with spin_trylock on panic path 2023-05-03 17:43:26 +02:00
parport
pci hyperv-fixes for 6.4-rc8 2023-06-19 17:05:43 -07:00
pcmcia
peci
perf arm64 updates for 6.5: 2023-06-26 17:11:53 -07:00
phy phy: qcom-snps: correct struct qcom_snps_hsphy kerneldoc 2023-05-16 19:48:55 +05:30
pinctrl Merge branches 'pm-sleep' and 'pm-domains' 2023-06-26 17:44:50 +02:00
platform chrome platform changes for 6.5 2023-06-26 20:12:07 -07:00
pnp
power power: supply: Fix logic checking if system is running from battery 2023-05-16 23:02:56 +02:00
powercap powercap: RAPL: Fix a NULL vs IS_ERR() bug 2023-06-12 19:51:21 +02:00
pps
ps3
ptp Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
pwm docs: update some straggling Documentation/arm references 2023-06-16 08:31:47 -06:00
rapidio Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
ras ras/debugfs: Fix error checking for debugfs_create_dir() 2023-05-16 21:12:23 +02:00
regulator regulator: qcom-rpmh: Fix regulators for PM8550 2023-06-07 14:20:04 +01:00
remoteproc Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
reset Nothing looks out of the ordinary in this batch of clk driver updates. There 2023-04-29 17:29:39 -07:00
rpmsg Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
rtc - New Drivers 2023-05-02 10:41:31 -07:00
s390 s390 updates for 6.5 merge window 2023-06-27 15:49:10 -07:00
sbus Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
scsi workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
sh
siox
slimbus
soc ARM: SoC fixes for 6.4, part 2 2023-06-10 13:01:09 -07:00
soundwire soundwire: stream: Add missing clear of alloc_slave_rt 2023-06-08 17:08:04 +05:30
spi spi: spi-geni-qcom: correctly handle -EPROBE_DEFER from dma_request_chan() 2023-06-15 14:58:45 +01:00
spmi spmi: Add a check for remove callback when removing a SPMI driver 2023-04-20 14:16:39 +02:00
ssb
staging Staging driver fix for 6.4-rc7 2023-06-17 11:04:10 -07:00
target for-6.5/block-2023-06-23 2023-06-26 12:47:20 -07:00
tc
tee AMDTEE add return origin to load TA command 2023-06-07 12:58:22 +02:00
thermal Thermal control updates for 6.5-rc1 2023-06-26 19:41:26 -07:00
thunderbolt thunderbolt: Mask ring interrupt on Intel hardware as well 2023-05-31 10:37:21 +03:00
tty Move the Arm architecture documentation under Documentation/arch/. This 2023-06-27 11:58:16 -07:00
ufs scsi: ufs: core: Fix MCQ nr_hw_queues 2023-05-16 21:07:26 -04:00
uio
usb usb: gadget: udc: core: Prevent soft_connect_store() race 2023-06-13 12:16:34 +02:00
vdpa vdpa/mlx5: Fix hang when cvq commands are triggered during device unregister 2023-06-08 15:43:08 -04:00
vfio vfio/type1: check pfn valid before converting to struct page 2023-05-23 14:16:29 -06:00
vhost vhost_vdpa: support PACKED when setting-getting vring_base 2023-06-09 12:08:04 -04:00
video fbdev: bw2: Convert to platform remove callback returning void 2023-05-30 18:33:25 +02:00
virt workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
virtio - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
vlynq
w1 Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
watchdog linux-watchdog 6.4-rc1 tag 2023-05-04 18:33:56 -07:00
xen workqueue: Ordered workqueue creation cleanups 2023-06-27 16:46:06 -07:00
zorro
Kconfig
Makefile