linux/include
Tejun Heo 3bc1e711c2 workqueue: Don't implicitly make UNBOUND workqueues w/ @max_active==1 ordered
5c0338c687 ("workqueue: restore WQ_UNBOUND/max_active==1 to be ordered")
automoatically promoted UNBOUND workqueues w/ @max_active==1 to ordered
workqueues because UNBOUND workqueues w/ @max_active==1 used to be the way
to create ordered workqueues and the new NUMA support broke it. These
problems can be subtle and the fact that they can only trigger on NUMA
machines made them even more difficult to debug.

However, overloading the UNBOUND allocation interface this way creates other
issues. It's difficult to tell whether a given workqueue actually needs to
be ordered and users that legitimately want a min concurrency level wq
unexpectedly gets an ordered one instead. With planned UNBOUND workqueue
udpates to improve execution locality and more prevalence of chiplet designs
which can benefit from such improvements, this isn't a state we wanna be in
forever.

There aren't that many UNBOUND w/ @max_active==1 users in the tree and the
preceding patches audited all and converted them to
alloc_ordered_workqueue() as appropriate. This patch removes the implicit
promotion of UNBOUND w/ @max_active==1 workqueues to ordered ones.

v2: v1 patch incorrectly dropped !list_empty(&wq->pwqs) condition in
    apply_workqueue_attrs_locked() which spuriously triggers WARNING and
    fails workqueue creation. Fix it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: kernel test robot <oliver.sang@intel.com>
Link: https://lore.kernel.org/oe-lkp/202304251050.45a5df1f-oliver.sang@intel.com
History 2024-02-05 14:19:10 -10:00
..
acpi ACPI updates for 6.8-rc1 2024-01-09 16:12:44 -08:00
asm-generic Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
clocksource clocksource: hyper-v: Adjust hv_read_tsc_page_tsc() to avoid special casing U64_MAX 2023-06-05 21:11:07 +02:00
crypto crypto: skcipher - remove excess kerneldoc members 2023-12-29 11:25:56 +08:00
drm drm-next for 6.8: 2024-01-12 11:32:19 -08:00
dt-bindings Core: 2024-01-12 13:54:25 -08:00
keys integrity: PowerVM support for loading third party code signing keys 2023-08-17 20:12:35 +00:00
kunit Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
kvm KVM/arm64 updates for 6.7 2023-10-31 16:37:07 -04:00
linux workqueue: Don't implicitly make UNBOUND workqueues w/ @max_active==1 ordered 2024-02-05 14:19:10 -10:00
math-emu powerpc/math-emu: Remove -w build flag and fix warnings 2022-09-05 17:28:25 +10:00
media media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
memory memory: renesas-rpc-if: Remove Runtime PM wrappers 2023-01-23 11:48:00 +01:00
misc cxl: fix typo in comment 2022-11-24 23:12:19 +11:00
net RDMA v6.8 merge window 2024-01-12 13:52:21 -08:00
pcmcia ARM: pxa/sa1100: move I/O space to PCI_IOBASE 2022-05-07 22:56:17 +02:00
ras mm, hwpoison: enable memory error handling on 1GB hugepage 2022-08-08 18:06:44 -07:00
rdma RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz 2023-12-04 20:02:41 -04:00
rv rv: Set variable 'da_mon_##name' to static 2023-09-01 21:00:00 -04:00
scsi scsi: sd: Fix system start for ATA devices 2023-11-24 20:44:21 -05:00
soc Memory controller drivers for v6.8 2023-12-22 11:27:02 +00:00
sound ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
target scsi: target: core: Unexport target_queue_submission() 2023-10-13 15:53:58 -04:00
trace f2fs update for 6.8-rc1 2024-01-11 20:39:15 -08:00
uapi media updates for v6.8-rc1 2024-01-12 14:29:48 -08:00
ufs scsi: ufs: core: Rename ufshcd_auto_hibern8_enable() and make it static 2023-12-18 20:51:14 -05:00
vdso arch: vdso: consolidate gettime prototypes 2023-11-23 11:32:32 +01:00
video video/sticore: Remove info field from STI struct 2024-01-12 12:38:37 +01:00
xen xen/events: reduce externally visible helper functions 2023-11-14 09:29:28 +01:00