[igt-dev] [PATCH i-g-t] tests/i915: Use correct type for gen parameter

Petri Latvala petri.latvala at intel.com
Tue May 31 11:15:52 UTC 2022


On Tue, May 31, 2022 at 12:56:54PM +0200, Karolina Drobnik wrote:
> intel_gen is designed to return a big unsigned number for an unknown device.
> The value is interpreted to be the newest generation possible, and the matching
> configuration is used. Some functions incorrectly pass the gen value as a signed
> number, meaning it becomes negative, and the oldest configuration is used
> instead of the newest one. This leads to GPU hangs in some cases.
> 
> Update the definition of submit functions in gem_exec_gttfill and gem_softpin,
> and has_cs_timestamp in gem_ctx_engines to use a correct type for gen parameter.
> 
> Signed-off-by: Karolina Drobnik <karolina.drobnik at intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

Reviewed-by: Petri Latvala <petri.latvala at intel.com>

> ---
>  tests/i915/gem_ctx_engines.c  | 2 +-
>  tests/i915/gem_exec_gttfill.c | 2 +-
>  tests/i915/gem_softpin.c      | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
> index 19cf9b05..4b8e5145 100644
> --- a/tests/i915/gem_ctx_engines.c
> +++ b/tests/i915/gem_ctx_engines.c
> @@ -437,7 +437,7 @@ static uint32_t read_result(int timeline, uint32_t *map, int idx)
>  	return map[idx];
>  }
>  
> -static bool has_cs_timestamp(const struct intel_execution_engine2 *e, int gen)
> +static bool has_cs_timestamp(const struct intel_execution_engine2 *e, unsigned int gen)
>  {
>  	if (gen >= 7)
>  		return true;
> diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
> index ebe6d2d3..037275f5 100644
> --- a/tests/i915/gem_exec_gttfill.c
> +++ b/tests/i915/gem_exec_gttfill.c
> @@ -46,7 +46,7 @@ static void xchg_batch(void *array, unsigned int i, unsigned int j)
>  	batches[j] = tmp;
>  }
>  
> -static void submit(int fd, uint64_t ahnd, int gen,
> +static void submit(int fd, uint64_t ahnd, unsigned int gen,
>  		   struct drm_i915_gem_execbuffer2 *eb,
>  		   struct drm_i915_gem_relocation_entry *reloc,
>  		   struct batch *batches, unsigned int count)
> diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
> index 00912fd3..6c8b46f3 100644
> --- a/tests/i915/gem_softpin.c
> +++ b/tests/i915/gem_softpin.c
> @@ -898,7 +898,7 @@ static void xchg_batch(void *array, unsigned int i, unsigned int j)
>  	batches[j] = tmp;
>  }
>  
> -static void submit(int fd, int gen,
> +static void submit(int fd, unsigned int gen,
>  		   struct drm_i915_gem_execbuffer2 *eb,
>  		   struct batch *batches, unsigned int count,
>  		   uint64_t ahnd)
> -- 
> 2.25.1
> 


More information about the igt-dev mailing list