On 10/30/25 17:10, 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.

Oh, good point!

> 
> Suggested-by: Tejun Heo <[email protected]>
> Signed-off-by: Marco Crivellari <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 8c4d79f6c14f..2f8160702f9a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -4798,7 +4798,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
>               }
>               /* must succeed. */
>               amdgpu_ras_resume(adev);
> -             queue_delayed_work(system_wq, &adev->delayed_init_work,
> +             queue_delayed_work(system_percpu_wq, &adev->delayed_init_work,
>                                  msecs_to_jiffies(AMDGPU_RESUME_MS));
>       }
>  
> @@ -5328,7 +5328,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool 
> notify_clients)
>       if (r)
>               goto exit;
>  
> -     queue_delayed_work(system_wq, &adev->delayed_init_work,
> +     queue_delayed_work(system_percpu_wq, &adev->delayed_init_work,
>                          msecs_to_jiffies(AMDGPU_RESUME_MS));

In this particular use case we actually don't want the percpu wq.

This can execute on any CPU except for the current one.

Regards,
Christian.

>  exit:
>       if (amdgpu_sriov_vf(adev)) {

Reply via email to