From: Karol Wachowski <karol.wachowski@linux.intel.com>
To: Marco Crivellari <marco.crivellari@suse.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Cc: Tejun Heo <tj@kernel.org>, Lai Jiangshan <jiangshanlai@gmail.com>,
Frederic Weisbecker <frederic@kernel.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Michal Hocko <mhocko@suse.com>,
Maciej Falkowski <maciej.falkowski@linux.intel.com>,
Oded Gabbay <ogabbay@kernel.org>
Subject: Re: [PATCH v2 2/2] accel/ivpu: replace use of system_wq with system_percpu_wq
Date: Thu, 30 Oct 2025 08:46:57 +0100 [thread overview]
Message-ID: <6cfbb32b-7866-4fcc-98a3-1ded4558d43f@linux.intel.com> (raw)
In-Reply-To: <eafe034a-0c87-452e-b202-bd53fbdf12ac@linux.intel.com>
On 10/29/2025 9:02 PM, Karol Wachowski wrote:
> On 10/29/2025 5:56 PM, Marco Crivellari wrote:
>> 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.
>>
>> The old wq (system_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/accel/ivpu/ivpu_hw_btrs.c | 2 +-
>> drivers/accel/ivpu/ivpu_ipc.c | 2 +-
>> drivers/accel/ivpu/ivpu_job.c | 2 +-
>> drivers/accel/ivpu/ivpu_mmu.c | 2 +-
>> drivers/accel/ivpu/ivpu_pm.c | 3 ++-
>> 5 files changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/accel/ivpu/ivpu_hw_btrs.c b/drivers/accel/ivpu/ivpu_hw_btrs.c
>> index afdb3b2aa72a..27a345f3befe 100644
>> --- a/drivers/accel/ivpu/ivpu_hw_btrs.c
>> +++ b/drivers/accel/ivpu/ivpu_hw_btrs.c
>> @@ -673,7 +673,7 @@ bool ivpu_hw_btrs_irq_handler_lnl(struct ivpu_device *vdev, int irq)
>>
>> if (REG_TEST_FLD(VPU_HW_BTRS_LNL_INTERRUPT_STAT, SURV_ERR, status)) {
>> ivpu_dbg(vdev, IRQ, "Survivability IRQ\n");
>> - queue_work(system_wq, &vdev->irq_dct_work);
>> + queue_work(system_percpu_wq, &vdev->irq_dct_work);
>> }
>>
>> if (REG_TEST_FLD(VPU_HW_BTRS_LNL_INTERRUPT_STAT, FREQ_CHANGE, status)) {
>> diff --git a/drivers/accel/ivpu/ivpu_ipc.c b/drivers/accel/ivpu/ivpu_ipc.c
>> index 5f00809d448a..1f13bf95b2b3 100644
>> --- a/drivers/accel/ivpu/ivpu_ipc.c
>> +++ b/drivers/accel/ivpu/ivpu_ipc.c
>> @@ -459,7 +459,7 @@ void ivpu_ipc_irq_handler(struct ivpu_device *vdev)
>> }
>> }
>>
>> - queue_work(system_wq, &vdev->irq_ipc_work);
>> + queue_work(system_percpu_wq, &vdev->irq_ipc_work);
>> }
>>
>> void ivpu_ipc_irq_work_fn(struct work_struct *work)
>> diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
>> index 060f1fc031d3..7a1f78b84b09 100644
>> --- a/drivers/accel/ivpu/ivpu_job.c
>> +++ b/drivers/accel/ivpu/ivpu_job.c
>> @@ -574,7 +574,7 @@ static int ivpu_job_signal_and_destroy(struct ivpu_device *vdev, u32 job_id, u32
>> * status and ensure both are handled in the same way
>> */
>> job->file_priv->has_mmu_faults = true;
>> - queue_work(system_wq, &vdev->context_abort_work);
>> + queue_work(system_percpu_wq, &vdev->context_abort_work);
>> return 0;
>> }
>>
>> diff --git a/drivers/accel/ivpu/ivpu_mmu.c b/drivers/accel/ivpu/ivpu_mmu.c
>> index 5ea010568faa..e1baf6b64935 100644
>> --- a/drivers/accel/ivpu/ivpu_mmu.c
>> +++ b/drivers/accel/ivpu/ivpu_mmu.c
>> @@ -970,7 +970,7 @@ void ivpu_mmu_irq_evtq_handler(struct ivpu_device *vdev)
>> }
>> }
>>
>> - queue_work(system_wq, &vdev->context_abort_work);
>> + queue_work(system_percpu_wq, &vdev->context_abort_work);
>> }
>>
>> void ivpu_mmu_evtq_dump(struct ivpu_device *vdev)
>> diff --git a/drivers/accel/ivpu/ivpu_pm.c b/drivers/accel/ivpu/ivpu_pm.c
>> index ffa2ba7cafe2..9ecba05ce7db 100644
>> --- a/drivers/accel/ivpu/ivpu_pm.c
>> +++ b/drivers/accel/ivpu/ivpu_pm.c
>> @@ -226,7 +226,8 @@ void ivpu_start_job_timeout_detection(struct ivpu_device *vdev)
>> unsigned long timeout_ms = ivpu_tdr_timeout_ms ? ivpu_tdr_timeout_ms : vdev->timeout.tdr;
>>
>> /* No-op if already queued */
>> - queue_delayed_work(system_wq, &vdev->pm->job_timeout_work, msecs_to_jiffies(timeout_ms));
>> + queue_delayed_work(system_percpu_wq, &vdev->pm->job_timeout_work,
>> + msecs_to_jiffies(timeout_ms));
>> }
>>
>> void ivpu_stop_job_timeout_detection(struct ivpu_device *vdev)
> Reviewed-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Pushed to drm-misc-next.
-Karol
next prev parent reply other threads:[~2025-10-30 7:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-29 16:56 [PATCH v2 0/2] replace system_unbound_wq and system_wq with the new wqs Marco Crivellari
2025-10-29 16:56 ` [PATCH v2 1/2] accel/ivpu: replace use of system_unbound_wq with system_dfl_wq Marco Crivellari
2025-10-29 20:01 ` Karol Wachowski
2025-10-30 7:46 ` Karol Wachowski
2025-10-29 16:56 ` [PATCH v2 2/2] accel/ivpu: replace use of system_wq with system_percpu_wq Marco Crivellari
2025-10-29 20:02 ` Karol Wachowski
2025-10-30 7:46 ` Karol Wachowski [this message]
2025-10-30 8:37 ` Marco Crivellari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6cfbb32b-7866-4fcc-98a3-1ded4558d43f@linux.intel.com \
--to=karol.wachowski@linux.intel.com \
--cc=bigeasy@linutronix.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=frederic@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.falkowski@linux.intel.com \
--cc=marco.crivellari@suse.com \
--cc=mhocko@suse.com \
--cc=ogabbay@kernel.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.