* [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
@ 2025-11-04 10:00 Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 1/3] drm/i915: replace use of system_unbound_wq with system_dfl_wq Marco Crivellari
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Marco Crivellari @ 2025-11-04 10:00 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter, Krzysztof Karas
Hi,
=== Current situation: problems ===
Let's consider a nohz_full system with isolated CPUs: wq_unbound_cpumask is
set to the housekeeping CPUs, for !WQ_UNBOUND the local CPU is selected.
This leads to different scenarios if a work item is scheduled on an
isolated CPU where "delay" value is 0 or greater then 0:
schedule_delayed_work(, 0);
This will be handled by __queue_work() that will queue the work item on the
current local (isolated) CPU, while:
schedule_delayed_work(, 1);
Will move the timer on an housekeeping CPU, and schedule the work there.
Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistency cannot be addressed without refactoring the API.
=== Recent changes to the WQ API ===
The following, address the recent changes in the Workqueue API:
- commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
- commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
The old workqueues will be removed in a future release cycle.
=== Introduced Changes by this series ===
1) [P 1-2] Replace uses of system_wq and system_unbound_wq
system_wq is a per-CPU workqueue, but his name is not clear.
system_unbound_wq is to be used when locality is not required.
Because of that, system_wq has been replaced with system_percpu_wq, and
system_unbound_wq has been replaced with system_dfl_wq.
2) [P 3] WQ_PERCPU added 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 3:
- Improved commit logs
Changes in v2:
- fix typo in patch subject (add instead of added).
- in every patch is also present the specific commit hash about the
workqueue API change.
- fixed commit log of P1 (removed "Adding system_dfl_wq...").
- P2: subject changed reflecting the effective change.
- rebased to v6.18-rc4.
Marco Crivellari (3):
drm/i915: replace use of system_unbound_wq with system_dfl_wq
drm/i915: replace use of system_wq with system_percpu_wq in the
documentation
drm/i915: add WQ_PERCPU to alloc_workqueue users
drivers/gpu/drm/i915/display/intel_display_driver.c | 4 ++--
drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
drivers/gpu/drm/i915/display/intel_tc.c | 4 ++--
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 4 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 6 +++---
drivers/gpu/drm/i915/i915_active.c | 2 +-
drivers/gpu/drm/i915/i915_driver.c | 5 +++--
drivers/gpu/drm/i915/i915_drv.h | 2 +-
drivers/gpu/drm/i915/i915_sw_fence_work.c | 2 +-
drivers/gpu/drm/i915/i915_vma_resource.c | 2 +-
drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 +-
drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +-
drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 2 +-
drivers/gpu/drm/i915/selftests/mock_gem_device.c | 2 +-
16 files changed, 24 insertions(+), 23 deletions(-)
--
2.51.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 1/3] drm/i915: replace use of system_unbound_wq with system_dfl_wq
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
@ 2025-11-04 10:00 ` Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 2/3] drm/i915: replace use of system_wq with system_percpu_wq in the documentation Marco Crivellari
` (4 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2025-11-04 10:00 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter, Krzysztof Karas
Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistency cannot be addressed without refactoring the API.
system_unbound_wq should be the default workqueue so as not to enforce
locality constraints for random work whenever it's not required.
This patch continues the effort to refactor worqueue APIs, which has
begun with the change introducing new workqueues:
commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
The old system_unbound_wq will be kept for a few release cycles.
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
drivers/gpu/drm/i915/display/intel_tc.c | 4 ++--
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 4 ++--
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 6 +++---
drivers/gpu/drm/i915/i915_active.c | 2 +-
drivers/gpu/drm/i915/i915_sw_fence_work.c | 2 +-
drivers/gpu/drm/i915/i915_vma_resource.c | 2 +-
drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 +-
drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +-
11 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index da4babfd6bcb..002a7ba6f630 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -645,7 +645,7 @@ queue_async_put_domains_work(struct i915_power_domains *power_domains,
power.domains);
drm_WARN_ON(display->drm, power_domains->async_put_wakeref);
power_domains->async_put_wakeref = wakeref;
- drm_WARN_ON(display->drm, !queue_delayed_work(system_unbound_wq,
+ drm_WARN_ON(display->drm, !queue_delayed_work(system_dfl_wq,
&power_domains->async_put_work,
msecs_to_jiffies(delay_ms)));
}
diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
index c4a5601c5107..2677e25c42f2 100644
--- a/drivers/gpu/drm/i915/display/intel_tc.c
+++ b/drivers/gpu/drm/i915/display/intel_tc.c
@@ -1838,7 +1838,7 @@ bool intel_tc_port_link_reset(struct intel_digital_port *dig_port)
if (!intel_tc_port_link_needs_reset(dig_port))
return false;
- queue_delayed_work(system_unbound_wq,
+ queue_delayed_work(system_dfl_wq,
&to_tc_port(dig_port)->link_reset_work,
msecs_to_jiffies(2000));
@@ -1919,7 +1919,7 @@ void intel_tc_port_unlock(struct intel_digital_port *dig_port)
struct intel_tc_port *tc = to_tc_port(dig_port);
if (!tc->link_refcount && tc->mode != TC_PORT_DISCONNECTED)
- queue_delayed_work(system_unbound_wq, &tc->disconnect_phy_work,
+ queue_delayed_work(system_dfl_wq, &tc->disconnect_phy_work,
msecs_to_jiffies(1000));
mutex_unlock(&tc->lock);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
index 2f6b33edb9c9..008d5909a010 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
@@ -408,7 +408,7 @@ static void __memcpy_cb(struct dma_fence *fence, struct dma_fence_cb *cb)
if (unlikely(fence->error || I915_SELFTEST_ONLY(fail_gpu_migration))) {
INIT_WORK(©_work->work, __memcpy_work);
- queue_work(system_unbound_wq, ©_work->work);
+ queue_work(system_dfl_wq, ©_work->work);
} else {
init_irq_work(©_work->irq_work, __memcpy_irq_work);
irq_work_queue(©_work->irq_work);
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 52ec4421a211..1c2764440323 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -624,7 +624,7 @@ int intel_guc_crash_process_msg(struct intel_guc *guc, u32 action)
else
guc_err(guc, "Unknown crash notification: 0x%04X\n", action);
- queue_work(system_unbound_wq, &guc->dead_guc_worker);
+ queue_work(system_dfl_wq, &guc->dead_guc_worker);
return 0;
}
@@ -646,7 +646,7 @@ int intel_guc_to_host_process_recv_msg(struct intel_guc *guc,
guc_err(guc, "Received early exception notification!\n");
if (msg & (INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED | INTEL_GUC_RECV_MSG_EXCEPTION))
- queue_work(system_unbound_wq, &guc->dead_guc_worker);
+ queue_work(system_dfl_wq, &guc->dead_guc_worker);
return 0;
}
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
index 2c651ec024ef..e015ff042c46 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
@@ -31,7 +31,7 @@ static void ct_dead_ct_worker_func(struct work_struct *w);
do { \
if (!(ct)->dead_ct_reported) { \
(ct)->dead_ct_reason |= 1 << CT_DEAD_##reason; \
- queue_work(system_unbound_wq, &(ct)->dead_ct_worker); \
+ queue_work(system_dfl_wq, &(ct)->dead_ct_worker); \
} \
} while (0)
#else
@@ -1241,7 +1241,7 @@ static int ct_handle_event(struct intel_guc_ct *ct, struct ct_incoming_msg *requ
list_add_tail(&request->link, &ct->requests.incoming);
spin_unlock_irqrestore(&ct->requests.lock, flags);
- queue_work(system_unbound_wq, &ct->requests.worker);
+ queue_work(system_dfl_wq, &ct->requests.worker);
return 0;
}
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index 68f2b8d363ac..364879a4d1d8 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -3385,7 +3385,7 @@ static void guc_context_sched_disable(struct intel_context *ce)
} else if (!intel_context_is_closed(ce) && !guc_id_pressure(guc, ce) &&
delay) {
spin_unlock_irqrestore(&ce->guc_state.lock, flags);
- mod_delayed_work(system_unbound_wq,
+ mod_delayed_work(system_dfl_wq,
&ce->guc_state.sched_disable_delay_work,
msecs_to_jiffies(delay));
} else {
@@ -3611,7 +3611,7 @@ static void guc_context_destroy(struct kref *kref)
* take the GT PM for the first time which isn't allowed from an atomic
* context.
*/
- queue_work(system_unbound_wq, &guc->submission_state.destroyed_worker);
+ queue_work(system_dfl_wq, &guc->submission_state.destroyed_worker);
}
static int guc_context_alloc(struct intel_context *ce)
@@ -5382,7 +5382,7 @@ int intel_guc_engine_failure_process_msg(struct intel_guc *guc,
* A GT reset flushes this worker queue (G2H handler) so we must use
* another worker to trigger a GT reset.
*/
- queue_work(system_unbound_wq, &guc->submission_state.reset_fail_worker);
+ queue_work(system_dfl_wq, &guc->submission_state.reset_fail_worker);
return 0;
}
diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index 6b0c1162505a..582e5099e980 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -193,7 +193,7 @@ active_retire(struct i915_active *ref)
return;
if (ref->flags & I915_ACTIVE_RETIRE_SLEEPS) {
- queue_work(system_unbound_wq, &ref->work);
+ queue_work(system_dfl_wq, &ref->work);
return;
}
diff --git a/drivers/gpu/drm/i915/i915_sw_fence_work.c b/drivers/gpu/drm/i915/i915_sw_fence_work.c
index d2e56b387993..366418108f78 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence_work.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence_work.c
@@ -38,7 +38,7 @@ fence_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state)
if (test_bit(DMA_FENCE_WORK_IMM, &f->dma.flags))
fence_work(&f->work);
else
- queue_work(system_unbound_wq, &f->work);
+ queue_work(system_dfl_wq, &f->work);
} else {
fence_complete(f);
}
diff --git a/drivers/gpu/drm/i915/i915_vma_resource.c b/drivers/gpu/drm/i915/i915_vma_resource.c
index 53d619ef0c3d..a8f2112ce81f 100644
--- a/drivers/gpu/drm/i915/i915_vma_resource.c
+++ b/drivers/gpu/drm/i915/i915_vma_resource.c
@@ -202,7 +202,7 @@ i915_vma_resource_fence_notify(struct i915_sw_fence *fence,
i915_vma_resource_unbind_work(&vma_res->work);
} else {
INIT_WORK(&vma_res->work, i915_vma_resource_unbind_work);
- queue_work(system_unbound_wq, &vma_res->work);
+ queue_work(system_dfl_wq, &vma_res->work);
}
break;
case FENCE_FREE:
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
index 27d545c4e6a5..b188c4deafb3 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
@@ -276,7 +276,7 @@ static void pxp_queue_termination(struct intel_pxp *pxp)
spin_lock_irq(gt->irq_lock);
intel_pxp_mark_termination_in_progress(pxp);
pxp->session_events |= PXP_TERMINATION_REQUEST;
- queue_work(system_unbound_wq, &pxp->session_work);
+ queue_work(system_dfl_wq, &pxp->session_work);
spin_unlock_irq(gt->irq_lock);
}
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
index d81750b9bdda..735325e828bc 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
@@ -48,7 +48,7 @@ void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir)
pxp->session_events |= PXP_TERMINATION_COMPLETE | PXP_EVENT_TYPE_IRQ;
if (pxp->session_events)
- queue_work(system_unbound_wq, &pxp->session_work);
+ queue_work(system_dfl_wq, &pxp->session_work);
}
static inline void __pxp_set_interrupts(struct intel_gt *gt, u32 interrupts)
--
2.51.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 2/3] drm/i915: replace use of system_wq with system_percpu_wq in the documentation
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 1/3] drm/i915: replace use of system_unbound_wq with system_dfl_wq Marco Crivellari
@ 2025-11-04 10:00 ` Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 3/3] drm/i915: add WQ_PERCPU to alloc_workqueue users Marco Crivellari
` (3 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2025-11-04 10:00 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter, Krzysztof Karas
Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistency cannot be addressed without refactoring the API.
system_wq should be the per-cpu workqueue, yet in this name nothing makes
that clear, so replace system_wq with system_percpu_wq.
This patch continues the effort to refactor worqueue APIs, which has
begun with the change introducing new workqueues:
commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
The old wq (system_wq) will be kept for a few release cycles.
This change only update the documentation of drm/i915.
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
drivers/gpu/drm/i915/i915_driver.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index a28c3710c4d5..0f33cdc11736 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -140,7 +140,7 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv)
/*
* The unordered i915 workqueue should be used for all work
* scheduling that do not require running in order, which used
- * to be scheduled on the system_wq before moving to a driver
+ * to be scheduled on the system_percpu_wq before moving to a driver
* instance due deprecation of flush_scheduled_work().
*/
dev_priv->unordered_wq = alloc_workqueue("i915-unordered", 0, 0);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6a768aad8edd..d9f73b9995cf 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -256,7 +256,7 @@ struct drm_i915_private {
*
* This workqueue should be used for all unordered work
* scheduling within i915, which used to be scheduled on the
- * system_wq before moving to a driver instance due
+ * system_percpu_wq before moving to a driver instance due
* deprecation of flush_scheduled_work().
*/
struct workqueue_struct *unordered_wq;
--
2.51.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 3/3] drm/i915: add WQ_PERCPU to alloc_workqueue users
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 1/3] drm/i915: replace use of system_unbound_wq with system_dfl_wq Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 2/3] drm/i915: replace use of system_wq with system_percpu_wq in the documentation Marco Crivellari
@ 2025-11-04 10:00 ` Marco Crivellari
2025-11-05 8:41 ` [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Krzysztof Karas
` (2 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2025-11-04 10:00 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter, Krzysztof Karas
Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistentcy cannot be addressed without refactoring the API.
alloc_workqueue() treats all queues as per-CPU by default, while unbound
workqueues must opt-in via WQ_UNBOUND.
This default is suboptimal: most workloads benefit from unbound queues,
allowing the scheduler to place worker threads where they’re needed and
reducing noise when CPUs are isolated.
This change adds a new WQ_PERCPU flag to explicitly request
alloc_workqueue() to be per-cpu when WQ_UNBOUND has not been specified.
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.
This patch continues the effort to refactor worqueue APIs, which has
begun with the change introducing new workqueues:
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
Once migration is complete, WQ_UNBOUND can be removed and unbound will
become the implicit default.
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
drivers/gpu/drm/i915/display/intel_display_driver.c | 4 ++--
drivers/gpu/drm/i915/i915_driver.c | 3 ++-
drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 2 +-
drivers/gpu/drm/i915/selftests/mock_gem_device.c | 2 +-
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index cf1c14412abe..e12f9126b155 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -257,13 +257,13 @@ int intel_display_driver_probe_noirq(struct intel_display *display)
goto cleanup_wq_modeset;
}
- display->wq.cleanup = alloc_workqueue("i915_cleanup", WQ_HIGHPRI, 0);
+ display->wq.cleanup = alloc_workqueue("i915_cleanup", WQ_HIGHPRI | WQ_PERCPU, 0);
if (!display->wq.cleanup) {
ret = -ENOMEM;
goto cleanup_wq_flip;
}
- display->wq.unordered = alloc_workqueue("display_unordered", 0, 0);
+ display->wq.unordered = alloc_workqueue("display_unordered", WQ_PERCPU, 0);
if (!display->wq.unordered) {
ret = -ENOMEM;
goto cleanup_wq_cleanup;
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 0f33cdc11736..380cb20a47c6 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -143,7 +143,8 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv)
* to be scheduled on the system_percpu_wq before moving to a driver
* instance due deprecation of flush_scheduled_work().
*/
- dev_priv->unordered_wq = alloc_workqueue("i915-unordered", 0, 0);
+ dev_priv->unordered_wq = alloc_workqueue("i915-unordered", WQ_PERCPU,
+ 0);
if (dev_priv->unordered_wq == NULL)
goto out_free_wq;
diff --git a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
index 8f5ce71fa453..b81d65c77458 100644
--- a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
@@ -526,7 +526,7 @@ static int test_ipc(void *arg)
struct workqueue_struct *wq;
int ret = 0;
- wq = alloc_workqueue("i1915-selftest", 0, 0);
+ wq = alloc_workqueue("i1915-selftest", WQ_PERCPU, 0);
if (wq == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index fb8751bd5df0..684e6ca0f960 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -221,7 +221,7 @@ struct drm_i915_private *mock_gem_device(void)
if (!i915->wq)
goto err_drv;
- i915->unordered_wq = alloc_workqueue("mock-unordered", 0, 0);
+ i915->unordered_wq = alloc_workqueue("mock-unordered", WQ_PERCPU, 0);
if (!i915->unordered_wq)
goto err_wq;
--
2.51.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
` (2 preceding siblings ...)
2025-11-04 10:00 ` [PATCH v3 3/3] drm/i915: add WQ_PERCPU to alloc_workqueue users Marco Crivellari
@ 2025-11-05 8:41 ` Krzysztof Karas
2025-11-05 8:56 ` Marco Crivellari
2025-11-10 12:11 ` Jani Nikula
2026-01-13 9:12 ` Marco Crivellari
2026-03-05 15:04 ` Marco Crivellari
5 siblings, 2 replies; 12+ messages in thread
From: Krzysztof Karas @ 2025-11-05 8:41 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter
Hi Marco,
thanks for addressing my comments!
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
on the whole series.
Best Regards,
Krzysztof
On 2025-11-04 at 11:00:29 +0100, Marco Crivellari wrote:
> Hi,
>
> === Current situation: problems ===
>
> Let's consider a nohz_full system with isolated CPUs: wq_unbound_cpumask is
> set to the housekeeping CPUs, for !WQ_UNBOUND the local CPU is selected.
>
> This leads to different scenarios if a work item is scheduled on an
> isolated CPU where "delay" value is 0 or greater then 0:
> schedule_delayed_work(, 0);
>
> This will be handled by __queue_work() that will queue the work item on the
> current local (isolated) CPU, while:
>
> schedule_delayed_work(, 1);
>
> Will move the timer on an housekeeping CPU, and schedule the work there.
>
> Currently if a user enqueue a work item using schedule_delayed_work() the
> used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
> WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
> schedule_work() that is using system_wq and queue_work(), that makes use
> again of WORK_CPU_UNBOUND.
>
> This lack of consistency cannot be addressed without refactoring the API.
>
> === Recent changes to the WQ API ===
>
> The following, address the recent changes in the Workqueue API:
>
> - commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
> - commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
>
> The old workqueues will be removed in a future release cycle.
>
> === Introduced Changes by this series ===
>
> 1) [P 1-2] Replace uses of system_wq and system_unbound_wq
>
> system_wq is a per-CPU workqueue, but his name is not clear.
> system_unbound_wq is to be used when locality is not required.
>
> Because of that, system_wq has been replaced with system_percpu_wq, and
> system_unbound_wq has been replaced with system_dfl_wq.
>
> 2) [P 3] WQ_PERCPU added 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 3:
> - Improved commit logs
>
> Changes in v2:
> - fix typo in patch subject (add instead of added).
>
> - in every patch is also present the specific commit hash about the
> workqueue API change.
>
> - fixed commit log of P1 (removed "Adding system_dfl_wq...").
>
> - P2: subject changed reflecting the effective change.
>
> - rebased to v6.18-rc4.
>
>
> Marco Crivellari (3):
> drm/i915: replace use of system_unbound_wq with system_dfl_wq
> drm/i915: replace use of system_wq with system_percpu_wq in the
> documentation
> drm/i915: add WQ_PERCPU to alloc_workqueue users
>
> drivers/gpu/drm/i915/display/intel_display_driver.c | 4 ++--
> drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
> drivers/gpu/drm/i915/display/intel_tc.c | 4 ++--
> drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 2 +-
> drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 ++--
> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 4 ++--
> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 6 +++---
> drivers/gpu/drm/i915/i915_active.c | 2 +-
> drivers/gpu/drm/i915/i915_driver.c | 5 +++--
> drivers/gpu/drm/i915/i915_drv.h | 2 +-
> drivers/gpu/drm/i915/i915_sw_fence_work.c | 2 +-
> drivers/gpu/drm/i915/i915_vma_resource.c | 2 +-
> drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 +-
> drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +-
> drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 2 +-
> drivers/gpu/drm/i915/selftests/mock_gem_device.c | 2 +-
> 16 files changed, 24 insertions(+), 23 deletions(-)
>
> --
> 2.51.1
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2025-11-05 8:41 ` [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Krzysztof Karas
@ 2025-11-05 8:56 ` Marco Crivellari
2025-11-10 12:11 ` Jani Nikula
1 sibling, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2025-11-05 8:56 UTC (permalink / raw)
To: Krzysztof Karas
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
David Airlie, Simona Vetter
On Wed, Nov 5, 2025 at 9:42 AM Krzysztof Karas
<krzysztof.karas@intel.com> wrote:
> thanks for addressing my comments!
>
> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
> on the whole series.
Hi Krzysztof,
Many thanks!
--
Marco Crivellari
L3 Support Engineer, Technology & Product
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2025-11-05 8:41 ` [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Krzysztof Karas
2025-11-05 8:56 ` Marco Crivellari
@ 2025-11-10 12:11 ` Jani Nikula
1 sibling, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2025-11-10 12:11 UTC (permalink / raw)
To: Krzysztof Karas, Marco Crivellari
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, David Airlie,
Simona Vetter
On Wed, 05 Nov 2025, Krzysztof Karas <krzysztof.karas@intel.com> wrote:
> Hi Marco,
>
> thanks for addressing my comments!
>
> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
> on the whole series.
The series absolutely must go through both i915 and xe CI before
merging. Krzysztof, can you please make follow through with that?
BR,
Jani.
>
> Best Regards,
> Krzysztof
>
> On 2025-11-04 at 11:00:29 +0100, Marco Crivellari wrote:
>> Hi,
>>
>> === Current situation: problems ===
>>
>> Let's consider a nohz_full system with isolated CPUs: wq_unbound_cpumask is
>> set to the housekeeping CPUs, for !WQ_UNBOUND the local CPU is selected.
>>
>> This leads to different scenarios if a work item is scheduled on an
>> isolated CPU where "delay" value is 0 or greater then 0:
>> schedule_delayed_work(, 0);
>>
>> This will be handled by __queue_work() that will queue the work item on the
>> current local (isolated) CPU, while:
>>
>> schedule_delayed_work(, 1);
>>
>> Will move the timer on an housekeeping CPU, and schedule the work there.
>>
>> Currently if a user enqueue a work item using schedule_delayed_work() the
>> used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
>> WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
>> schedule_work() that is using system_wq and queue_work(), that makes use
>> again of WORK_CPU_UNBOUND.
>>
>> This lack of consistency cannot be addressed without refactoring the API.
>>
>> === Recent changes to the WQ API ===
>>
>> The following, address the recent changes in the Workqueue API:
>>
>> - commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
>> - commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
>>
>> The old workqueues will be removed in a future release cycle.
>>
>> === Introduced Changes by this series ===
>>
>> 1) [P 1-2] Replace uses of system_wq and system_unbound_wq
>>
>> system_wq is a per-CPU workqueue, but his name is not clear.
>> system_unbound_wq is to be used when locality is not required.
>>
>> Because of that, system_wq has been replaced with system_percpu_wq, and
>> system_unbound_wq has been replaced with system_dfl_wq.
>>
>> 2) [P 3] WQ_PERCPU added 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 3:
>> - Improved commit logs
>>
>> Changes in v2:
>> - fix typo in patch subject (add instead of added).
>>
>> - in every patch is also present the specific commit hash about the
>> workqueue API change.
>>
>> - fixed commit log of P1 (removed "Adding system_dfl_wq...").
>>
>> - P2: subject changed reflecting the effective change.
>>
>> - rebased to v6.18-rc4.
>>
>>
>> Marco Crivellari (3):
>> drm/i915: replace use of system_unbound_wq with system_dfl_wq
>> drm/i915: replace use of system_wq with system_percpu_wq in the
>> documentation
>> drm/i915: add WQ_PERCPU to alloc_workqueue users
>>
>> drivers/gpu/drm/i915/display/intel_display_driver.c | 4 ++--
>> drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
>> drivers/gpu/drm/i915/display/intel_tc.c | 4 ++--
>> drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 2 +-
>> drivers/gpu/drm/i915/gt/uc/intel_guc.c | 4 ++--
>> drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 4 ++--
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 6 +++---
>> drivers/gpu/drm/i915/i915_active.c | 2 +-
>> drivers/gpu/drm/i915/i915_driver.c | 5 +++--
>> drivers/gpu/drm/i915/i915_drv.h | 2 +-
>> drivers/gpu/drm/i915/i915_sw_fence_work.c | 2 +-
>> drivers/gpu/drm/i915/i915_vma_resource.c | 2 +-
>> drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 +-
>> drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 2 +-
>> drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 2 +-
>> drivers/gpu/drm/i915/selftests/mock_gem_device.c | 2 +-
>> 16 files changed, 24 insertions(+), 23 deletions(-)
>>
>> --
>> 2.51.1
>>
>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
` (3 preceding siblings ...)
2025-11-05 8:41 ` [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Krzysztof Karas
@ 2026-01-13 9:12 ` Marco Crivellari
2026-03-05 15:04 ` Marco Crivellari
5 siblings, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2026-01-13 9:12 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Michal Hocko, Jani Nikula,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, David Airlie,
Simona Vetter, Krzysztof Karas
Hi
On Tue, Nov 4, 2025 at 11:00 AM Marco Crivellari
<marco.crivellari@suse.com> wrote:
>[...]
> Marco Crivellari (3):
> drm/i915: replace use of system_unbound_wq with system_dfl_wq
> drm/i915: replace use of system_wq with system_percpu_wq in the
> documentation
> drm/i915: add WQ_PERCPU to alloc_workqueue users
Gentle ping.
Thanks!
--
Marco Crivellari
L3 Support Engineer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
` (4 preceding siblings ...)
2026-01-13 9:12 ` Marco Crivellari
@ 2026-03-05 15:04 ` Marco Crivellari
2026-03-05 18:53 ` Rodrigo Vivi
5 siblings, 1 reply; 12+ messages in thread
From: Marco Crivellari @ 2026-03-05 15:04 UTC (permalink / raw)
To: linux-kernel, intel-gfx, dri-devel
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Michal Hocko, Jani Nikula,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, David Airlie,
Simona Vetter, Krzysztof Karas
Hi,
On Tue, Nov 4, 2025 at 11:00 AM Marco Crivellari
<marco.crivellari@suse.com> wrote:
> Marco Crivellari (3):
> drm/i915: replace use of system_unbound_wq with system_dfl_wq
> drm/i915: replace use of system_wq with system_percpu_wq in the
> documentation
> drm/i915: add WQ_PERCPU to alloc_workqueue users
Gentle ping.
I checked patchwork and seems still in the "New" state.
Thanks!
--
Marco Crivellari
L3 Support Engineer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2026-03-05 15:04 ` Marco Crivellari
@ 2026-03-05 18:53 ` Rodrigo Vivi
2026-03-05 19:00 ` Rodrigo Vivi
0 siblings, 1 reply; 12+ messages in thread
From: Rodrigo Vivi @ 2026-03-05 18:53 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Tvrtko Ursulin, David Airlie,
Simona Vetter, Krzysztof Karas
On Thu, Mar 05, 2026 at 04:04:32PM +0100, Marco Crivellari wrote:
> Hi,
>
> On Tue, Nov 4, 2025 at 11:00 AM Marco Crivellari
> <marco.crivellari@suse.com> wrote:
> > Marco Crivellari (3):
> > drm/i915: replace use of system_unbound_wq with system_dfl_wq
> > drm/i915: replace use of system_wq with system_percpu_wq in the
> > documentation
> > drm/i915: add WQ_PERCPU to alloc_workqueue users
>
> Gentle ping.
> I checked patchwork and seems still in the "New" state.
Please ignore patchwork status.
Both patches queued towards the next merge window targeting 7.1
fa171b805f25 ("drm/xe: replace use of system_unbound_wq with system_dfl_wq")
0bc2c2e1a388 ("drm/xe: add WQ_PERCPU to alloc_workqueue users")
Thanks,
Rodrigo.
>
> Thanks!
>
> --
>
> Marco Crivellari
>
> L3 Support Engineer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2026-03-05 18:53 ` Rodrigo Vivi
@ 2026-03-05 19:00 ` Rodrigo Vivi
2026-03-06 8:16 ` Marco Crivellari
0 siblings, 1 reply; 12+ messages in thread
From: Rodrigo Vivi @ 2026-03-05 19:00 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Tvrtko Ursulin, David Airlie,
Simona Vetter, Krzysztof Karas
On Thu, Mar 05, 2026 at 01:53:58PM -0500, Rodrigo Vivi wrote:
> On Thu, Mar 05, 2026 at 04:04:32PM +0100, Marco Crivellari wrote:
> > Hi,
> >
> > On Tue, Nov 4, 2025 at 11:00 AM Marco Crivellari
> > <marco.crivellari@suse.com> wrote:
> > > Marco Crivellari (3):
> > > drm/i915: replace use of system_unbound_wq with system_dfl_wq
> > > drm/i915: replace use of system_wq with system_percpu_wq in the
> > > documentation
> > > drm/i915: add WQ_PERCPU to alloc_workqueue users
> >
> > Gentle ping.
> > I checked patchwork and seems still in the "New" state.
>
> Please ignore patchwork status.
>
> Both patches queued towards the next merge window targeting 7.1
>
> fa171b805f25 ("drm/xe: replace use of system_unbound_wq with system_dfl_wq")
> 0bc2c2e1a388 ("drm/xe: add WQ_PERCPU to alloc_workqueue users")
doh! please ignore me.
The similar subject titles confused me.
I just pushed this i915 series to drm-intel-next.
Now, also queued for 7.1 along with the xe above.
c15d0056fb74 drm/i915: add WQ_PERCPU to alloc_workqueue users
4fb289d352e3 drm/i915: replace use of system_wq with system_percpu_wq in the documentation
36ed3648a2f3 drm/i915: replace use of system_unbound_wq with system_dfl_wq
>
> Thanks,
> Rodrigo.
>
> >
> > Thanks!
> >
> > --
> >
> > Marco Crivellari
> >
> > L3 Support Engineer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue
2026-03-05 19:00 ` Rodrigo Vivi
@ 2026-03-06 8:16 ` Marco Crivellari
0 siblings, 0 replies; 12+ messages in thread
From: Marco Crivellari @ 2026-03-06 8:16 UTC (permalink / raw)
To: Rodrigo Vivi
Cc: linux-kernel, intel-gfx, dri-devel, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jani Nikula, Joonas Lahtinen, Tvrtko Ursulin, David Airlie,
Simona Vetter, Krzysztof Karas
On Thu, Mar 5, 2026 at 8:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote
> doh! please ignore me.
>
> The similar subject titles confused me.
>
> I just pushed this i915 series to drm-intel-next.
>
> Now, also queued for 7.1 along with the xe above.
>
> c15d0056fb74 drm/i915: add WQ_PERCPU to alloc_workqueue users
> 4fb289d352e3 drm/i915: replace use of system_wq with system_percpu_wq in the documentation
> 36ed3648a2f3 drm/i915: replace use of system_unbound_wq with system_dfl_wq
Hi,
Many thanks Rodrigo!
--
Marco Crivellari
L3 Support Engineer
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-03-06 8:17 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-04 10:00 [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 1/3] drm/i915: replace use of system_unbound_wq with system_dfl_wq Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 2/3] drm/i915: replace use of system_wq with system_percpu_wq in the documentation Marco Crivellari
2025-11-04 10:00 ` [PATCH v3 3/3] drm/i915: add WQ_PERCPU to alloc_workqueue users Marco Crivellari
2025-11-05 8:41 ` [PATCH v3 0/3] replace old wq(s), add WQ_PERCPU to alloc_workqueue Krzysztof Karas
2025-11-05 8:56 ` Marco Crivellari
2025-11-10 12:11 ` Jani Nikula
2026-01-13 9:12 ` Marco Crivellari
2026-03-05 15:04 ` Marco Crivellari
2026-03-05 18:53 ` Rodrigo Vivi
2026-03-05 19:00 ` Rodrigo Vivi
2026-03-06 8:16 ` Marco Crivellari
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox