mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
@ 2026-02-23  9:29 Marco Crivellari
  2026-02-23  9:29 ` [PATCH v2 1/2] block: " Marco Crivellari
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-02-23  9:29 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
	Jens Axboe

Hi,

Recently the workqueue code has been changed introducing two new workqueue,
system_percpu_wq and system_dfl_wq, as a future replacement for system_wq and
system_unbound_wq respectively, and a new flag, alloc_workqueue() WQ_PERCPU.
This flag must be used when WQ_UNBOUND is not present, making explicit the
workqueue is per-cpu.

The changes has been introduced by:
    commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
    commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The old workqueue(s) will be removed in a next release cycle.

=== Introduced Changes by this series ===

1) [P 1-2] add WQ_PERCPU to alloc_workqueue()

    This change adds a new WQ_PERCPU flag to explicitly request
    alloc_workqueue() to be per-cpu when WQ_UNBOUND has not been specified.


Thanks!

---
Changes in v2:
- patches unified in 1 series
- rebase on v7.0-rc1


Marco Crivellari (2):
  block: Add WQ_PERCPU to alloc_workqueue users
  block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users

 block/bio-integrity-auto.c | 2 +-
 block/bio.c                | 2 +-
 block/blk-core.c           | 2 +-
 block/blk-throttle.c       | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

-- 
2.52.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/2] block: Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
@ 2026-02-23  9:29 ` Marco Crivellari
  2026-02-23  9:29 ` [PATCH v2 2/2] block/blk-throttle: " Marco Crivellari
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-02-23  9:29 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
	Jens Axboe

This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

   commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
   commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The refactoring is going to alter the default behavior of
alloc_workqueue() to be unbound by default.

With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND),
any alloc_workqueue() caller that doesn’t explicitly specify WQ_UNBOUND
must now use WQ_PERCPU. For more details see the Link tag below.

In order to keep alloc_workqueue() behavior identical, explicitly request
WQ_PERCPU.

Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de/
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
 block/bio-integrity-auto.c | 2 +-
 block/bio.c                | 2 +-
 block/blk-core.c           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/block/bio-integrity-auto.c b/block/bio-integrity-auto.c
index 44dcdf7520c5..a2bccb3c4baa 100644
--- a/block/bio-integrity-auto.c
+++ b/block/bio-integrity-auto.c
@@ -183,7 +183,7 @@ static int __init blk_integrity_auto_init(void)
 	 * Make it highpri CPU intensive wq with max concurrency of 1.
 	 */
 	kintegrityd_wq = alloc_workqueue("kintegrityd", WQ_MEM_RECLAIM |
-					 WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1);
+					 WQ_HIGHPRI | WQ_CPU_INTENSIVE | WQ_PERCPU, 1);
 	if (!kintegrityd_wq)
 		panic("Failed to create kintegrityd\n");
 	return 0;
diff --git a/block/bio.c b/block/bio.c
index d80d5d26804e..fd8073fbffb2 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1956,7 +1956,7 @@ int bioset_init(struct bio_set *bs,
 
 	if (flags & BIOSET_NEED_RESCUER) {
 		bs->rescue_workqueue = alloc_workqueue("bioset",
-							WQ_MEM_RECLAIM, 0);
+							WQ_MEM_RECLAIM | WQ_PERCPU, 0);
 		if (!bs->rescue_workqueue)
 			goto bad;
 	}
diff --git a/block/blk-core.c b/block/blk-core.c
index 474700ffaa1c..17450058ea6d 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1282,7 +1282,7 @@ int __init blk_dev_init(void)
 
 	/* used for unplugging and affects IO latency/throughput - HIGHPRI */
 	kblockd_workqueue = alloc_workqueue("kblockd",
-					    WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
+					    WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_PERCPU, 0);
 	if (!kblockd_workqueue)
 		panic("Failed to create kblockd\n");
 
-- 
2.52.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 2/2] block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
  2026-02-23  9:29 ` [PATCH v2 1/2] block: " Marco Crivellari
@ 2026-02-23  9:29 ` Marco Crivellari
  2026-03-18 15:31 ` [PATCH v2 0/2] " Marco Crivellari
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-02-23  9:29 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
	Jens Axboe, Josef Bacik, cgroups

This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

   commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
   commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The refactoring is going to alter the default behavior of
alloc_workqueue() to be unbound by default.

With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND),
any alloc_workqueue() caller that doesn’t explicitly specify WQ_UNBOUND
must now use WQ_PERCPU. For more details see the Link tag below.

In order to keep alloc_workqueue() behavior identical, explicitly request
WQ_PERCPU.

Cc: Josef Bacik <josef@toxicpanda.com>
Cc: cgroups@vger.kernel.org
Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de/
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
 block/blk-throttle.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 97188a795848..cabf91f0d0dc 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -1839,7 +1839,7 @@ void blk_throtl_exit(struct gendisk *disk)
 
 static int __init throtl_init(void)
 {
-	kthrotld_workqueue = alloc_workqueue("kthrotld", WQ_MEM_RECLAIM, 0);
+	kthrotld_workqueue = alloc_workqueue("kthrotld", WQ_MEM_RECLAIM | WQ_PERCPU, 0);
 	if (!kthrotld_workqueue)
 		panic("Failed to create kthrotld\n");
 
-- 
2.52.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
  2026-02-23  9:29 ` [PATCH v2 1/2] block: " Marco Crivellari
  2026-02-23  9:29 ` [PATCH v2 2/2] block/blk-throttle: " Marco Crivellari
@ 2026-03-18 15:31 ` Marco Crivellari
  2026-03-27 16:06 ` Marco Crivellari
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-03-18 15:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Michal Hocko, Jens Axboe

On Mon, Feb 23, 2026 at 10:29 AM Marco Crivellari
<marco.crivellari@suse.com> wrote:
> [...]
> Marco Crivellari (2):
>   block: Add WQ_PERCPU to alloc_workqueue users
>   block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users

Hi,

Gentle ping.

Thanks!


-- 

Marco Crivellari

L3 Support Engineer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
                   ` (2 preceding siblings ...)
  2026-03-18 15:31 ` [PATCH v2 0/2] " Marco Crivellari
@ 2026-03-27 16:06 ` Marco Crivellari
  2026-04-09  9:49 ` Marco Crivellari
  2026-04-17 20:39 ` Jens Axboe
  5 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-03-27 16:06 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Michal Hocko, Jens Axboe

On Mon, Feb 23, 2026 at 10:29 AM Marco Crivellari
<marco.crivellari@suse.com> wrote:
> [...]
> Marco Crivellari (2):
>   block: Add WQ_PERCPU to alloc_workqueue users
>   block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users
>
>  block/bio-integrity-auto.c | 2 +-
>  block/bio.c                | 2 +-
>  block/blk-core.c           | 2 +-
>  block/blk-throttle.c       | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)

Hi,

Gentle ping.

Thanks!


-- 

Marco Crivellari

L3 Support Engineer

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
                   ` (3 preceding siblings ...)
  2026-03-27 16:06 ` Marco Crivellari
@ 2026-04-09  9:49 ` Marco Crivellari
  2026-04-17 20:39 ` Jens Axboe
  5 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-04-09  9:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Michal Hocko, Jens Axboe

On Mon, Feb 23, 2026 at 10:29 AM Marco Crivellari
<marco.crivellari@suse.com> wrote:
> [...]
> Marco Crivellari (2):
>   block: Add WQ_PERCPU to alloc_workqueue users
>   block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users
>
>  block/bio-integrity-auto.c | 2 +-
>  block/bio.c                | 2 +-
>  block/blk-core.c           | 2 +-
>  block/blk-throttle.c       | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)

Hi,

Gentle ping.

Thanks!


-- 

Marco Crivellari

SUSE Labs

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
  2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
                   ` (4 preceding siblings ...)
  2026-04-09  9:49 ` Marco Crivellari
@ 2026-04-17 20:39 ` Jens Axboe
  2026-04-20  7:57   ` Marco Crivellari
  5 siblings, 1 reply; 8+ messages in thread
From: Jens Axboe @ 2026-04-17 20:39 UTC (permalink / raw)
  To: linux-kernel, Marco Crivellari
  Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Michal Hocko


On Mon, 23 Feb 2026 10:29:18 +0100, Marco Crivellari wrote:
> Recently the workqueue code has been changed introducing two new workqueue,
> system_percpu_wq and system_dfl_wq, as a future replacement for system_wq and
> system_unbound_wq respectively, and a new flag, alloc_workqueue() WQ_PERCPU.
> This flag must be used when WQ_UNBOUND is not present, making explicit the
> workqueue is per-cpu.
> 
> The changes has been introduced by:
>     commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
>     commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
> 
> [...]

Applied, thanks!

[1/2] block: Add WQ_PERCPU to alloc_workqueue users
      commit: 98236343bb5dbbf3fcb3260795be2bbb1e3d2001
[2/2] block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users
      commit: 19d32966e1f68623ac9d95fbcf34b1fb1a7be48d

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users
  2026-04-17 20:39 ` Jens Axboe
@ 2026-04-20  7:57   ` Marco Crivellari
  0 siblings, 0 replies; 8+ messages in thread
From: Marco Crivellari @ 2026-04-20  7:57 UTC (permalink / raw)
  To: Jens Axboe
  Cc: linux-kernel, Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
	Sebastian Andrzej Siewior, Michal Hocko

On Fri, Apr 17, 2026 at 10:39 PM Jens Axboe <axboe@kernel.dk> wrote:
> [...]
> Applied, thanks!
>
> [1/2] block: Add WQ_PERCPU to alloc_workqueue users
>       commit: 98236343bb5dbbf3fcb3260795be2bbb1e3d2001
> [2/2] block/blk-throttle: Add WQ_PERCPU to alloc_workqueue users
>       commit: 19d32966e1f68623ac9d95fbcf34b1fb1a7be48d

Many thanks!

-- 

Marco Crivellari

SUSE Labs

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-20  7:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-23  9:29 [PATCH v2 0/2] Add WQ_PERCPU to alloc_workqueue users Marco Crivellari
2026-02-23  9:29 ` [PATCH v2 1/2] block: " Marco Crivellari
2026-02-23  9:29 ` [PATCH v2 2/2] block/blk-throttle: " Marco Crivellari
2026-03-18 15:31 ` [PATCH v2 0/2] " Marco Crivellari
2026-03-27 16:06 ` Marco Crivellari
2026-04-09  9:49 ` Marco Crivellari
2026-04-17 20:39 ` Jens Axboe
2026-04-20  7:57   ` Marco Crivellari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®