[PATCH] drm/xe: fix WQ_MEM_RECLAIM passed as max_active to alloc_workqueue()

Marco Crivellari posted 1 patch 1 month ago
drivers/gpu/drm/xe/xe_ggtt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/xe: fix WQ_MEM_RECLAIM passed as max_active to alloc_workqueue()
Posted by Marco Crivellari 1 month ago
Workqueue xe-ggtt-wq has been allocated using WQ_MEM_RECLAIM, but
the flag has been passed as 3rd parameter (max_active) instead
of 2nd (flags) creating the workqueue as per-cpu with max_active = 8
(the WQ_MEM_RECLAIM value).

So change this by set WQ_MEM_RECLAIM as the 2nd parameter with a
default max_active.

Fixes: 60df57e496e4 ("drm/xe: Mark GGTT work queue with WQ_MEM_RECLAIM")
Cc: stable@vger.kernel.org
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
 drivers/gpu/drm/xe/xe_ggtt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index ef481b334af4..793d7324a395 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -322,7 +322,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 	else
 		ggtt->pt_ops = &xelp_pt_ops;
 
-	ggtt->wq = alloc_workqueue("xe-ggtt-wq", 0, WQ_MEM_RECLAIM);
+	ggtt->wq = alloc_workqueue("xe-ggtt-wq", WQ_MEM_RECLAIM, 0);
 	if (!ggtt->wq)
 		return -ENOMEM;
 
-- 
2.52.0
Re: [PATCH] drm/xe: fix WQ_MEM_RECLAIM passed as max_active to alloc_workqueue()
Posted by Matthew Brost 1 month ago
On Thu, Jan 08, 2026 at 07:01:48PM +0100, Marco Crivellari wrote:
> Workqueue xe-ggtt-wq has been allocated using WQ_MEM_RECLAIM, but
> the flag has been passed as 3rd parameter (max_active) instead
> of 2nd (flags) creating the workqueue as per-cpu with max_active = 8
> (the WQ_MEM_RECLAIM value).
> 
> So change this by set WQ_MEM_RECLAIM as the 2nd parameter with a
> default max_active.
> 

Yikes - thanks for the fix. Will apply our tree shortly.

With that:
Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> Fixes: 60df57e496e4 ("drm/xe: Mark GGTT work queue with WQ_MEM_RECLAIM")
> Cc: stable@vger.kernel.org
> Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
> ---
>  drivers/gpu/drm/xe/xe_ggtt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index ef481b334af4..793d7324a395 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -322,7 +322,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
>  	else
>  		ggtt->pt_ops = &xelp_pt_ops;
>  
> -	ggtt->wq = alloc_workqueue("xe-ggtt-wq", 0, WQ_MEM_RECLAIM);
> +	ggtt->wq = alloc_workqueue("xe-ggtt-wq", WQ_MEM_RECLAIM, 0);
>  	if (!ggtt->wq)
>  		return -ENOMEM;
>  
> -- 
> 2.52.0
>
Re: [PATCH] drm/xe: fix WQ_MEM_RECLAIM passed as max_active to alloc_workqueue()
Posted by Marco Crivellari 4 weeks, 1 day ago
On Thu, Jan 8, 2026 at 7:36 PM Matthew Brost <matthew.brost@intel.com> wrote:
> [...]
> Yikes - thanks for the fix. Will apply our tree shortly.
>
> With that:
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>

Thanks Matthew! :-)

-- 

Marco Crivellari

L3 Support Engineer