[PATCH] drm/i915/gt: Refactor uabi engine class/instance list creation

Andi Shyti andi.shyti at linux.intel.com
Tue Apr 23 10:05:09 UTC 2024


Hi Nirmoy,

On Tue, Apr 23, 2024 at 11:02:06AM +0200, Nirmoy Das wrote:
> On 4/17/2024 12:49 AM, Andi Shyti wrote:

...

>      void intel_engines_driver_register(struct drm_i915_private *i915)
>      {
>     -       u16 name_instance, other_instance = 0;
>     +       u16 class_instance[I915_LAST_UABI_ENGINE_CLASS + 2] = { };
> 
> +2 is confusing here. I think we need a better macro.

This is to avoid buffer overflow, otherwise we will always hit
the GEM_BUG_ON below.

>             struct legacy_ring ring = {};
>             struct list_head *it, *next;
>             struct rb_node **p, *prev;

...

>     +               GEM_BUG_ON(uabi_class >=
>     +                          ARRAY_SIZE(i915->engine_uabi_class_count));
>     +               i915->engine_uabi_class_count[uabi_class]++;
> 
> Shouldn't this be  i915->engine_uabi_class_count[uabi_class] =  class_instance
> [uabi_class]; ?

that's mostly a counter, we don't really need to be on sync with
the real instance of the engines.

> What I see is that this patch mainly adding this class_instance array and rest
> looks the same.
> May be it make sense to add other upcoming  patches to better understand why we
> need this patch.

yes, this patch simplifies the coming patches and the logic
inside, as well.

I just wanted to anticipate some of the refactorings so that we
could speed up the reviews. There is no functional change in
here, that's why I thought it was harmless.

Thanks for taking a look into it.

Andi


More information about the Intel-gfx mailing list