[PATCH] drm/xe/guc: Only take actions in CT irq handler if CTs are enabled

Michal Wajdeczko michal.wajdeczko at intel.com
Fri Jan 5 19:59:36 UTC 2024



On 02.01.2024 22:43, Matthew Brost wrote:
> Protect entire IRQ handler by CT being enabled rather than just G2H
> handler.
> 
> Suggested-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc_ct.h | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.h b/drivers/gpu/drm/xe/xe_guc_ct.h
> index f15f8a4857e0..05302db02e08 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ct.h
> +++ b/drivers/gpu/drm/xe/xe_guc_ct.h
> @@ -24,10 +24,11 @@ void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool atomic);
>  
>  static inline void xe_guc_ct_irq_handler(struct xe_guc_ct *ct)
>  {
> -	wake_up_all(&ct->wq);
> -	if (ct->enabled)
> +	if (ct->enabled) {

nit: to simplify the code I would rather exit early if (!ct->enabled)

> +		wake_up_all(&ct->wq);

btw, shouldn't we wake up wq _after_ we process a g2h message?
and maybe this should be done in fast_path or worker?

>  		queue_work(system_unbound_wq, &ct->g2h_worker);
> -	xe_guc_ct_fast_path(ct);
> +		xe_guc_ct_fast_path(ct);
> +	}

anyway, since we move forward,

Reviewed-by: Michal Wajdeczko <michal.wajdeczko at intel.com>

>  }
>  
>  /* Basic CT send / receives */


More information about the Intel-xe mailing list