[Intel-gfx] [PATCH 7/8] drm/i915: Count engine instances per uabi class

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Mar 2 09:03:18 UTC 2022


On 01/03/2022 19:34, Umesh Nerlige Ramappa wrote:
> On Tue, Feb 22, 2022 at 02:04:21PM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> This will be useful to have at hand in a following patch.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> ---
>> drivers/gpu/drm/i915/gt/intel_engine_user.c | 11 ++++++-----
>> drivers/gpu/drm/i915/i915_drv.h             |  1 +
>> 2 files changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c 
>> b/drivers/gpu/drm/i915/gt/intel_engine_user.c
>> index 9ce85a845105..5dd559253078 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
>> @@ -190,7 +190,6 @@ static void add_legacy_ring(struct legacy_ring *ring,
>> void intel_engines_driver_register(struct drm_i915_private *i915)
>> {
>>     struct legacy_ring ring = {};
>> -    u8 uabi_instances[4] = {};
>>     struct list_head *it, *next;
>>     struct rb_node **p, *prev;
>>     LIST_HEAD(engines);
>> @@ -211,8 +210,10 @@ void intel_engines_driver_register(struct 
>> drm_i915_private *i915)
>>         GEM_BUG_ON(engine->class >= ARRAY_SIZE(uabi_classes));
>>         engine->uabi_class = uabi_classes[engine->class];
>>
>> -        GEM_BUG_ON(engine->uabi_class >= ARRAY_SIZE(uabi_instances));
>> -        engine->uabi_instance = uabi_instances[engine->uabi_class]++;
>> +        GEM_BUG_ON(engine->uabi_class >=
>> +               ARRAY_SIZE(i915->engine_uabi_class_count));
>> +        engine->uabi_instance =
>> +            i915->engine_uabi_class_count[engine->uabi_class]++;
>>
>>         /* Replace the internal name with the final user facing name */
>>         memcpy(old, engine->name, sizeof(engine->name));
>> @@ -242,8 +243,8 @@ void intel_engines_driver_register(struct 
>> drm_i915_private *i915)
>>         int class, inst;
>>         int errors = 0;
>>
>> -        for (class = 0; class < ARRAY_SIZE(uabi_instances); class++) {
>> -            for (inst = 0; inst < uabi_instances[class]; inst++) {
>> +        for (class = 0; class < 
>> ARRAY_SIZE(i915->engine_uabi_class_count); class++) {
>> +            for (inst = 0; inst < 
>> i915->engine_uabi_class_count[class]; inst++) {
>>                 engine = intel_engine_lookup_user(i915,
>>                                   class, inst);
>>                 if (!engine) {
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h 
>> b/drivers/gpu/drm/i915/i915_drv.h
>> index b9d38276801d..68d8a751008b 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -533,6 +533,7 @@ struct drm_i915_private {
>>     struct pci_dev *bridge_dev;
>>
>>     struct rb_root uabi_engines;
>> +    unsigned int engine_uabi_class_count[I915_LAST_UABI_ENGINE_CLASS 
>> + 1];
> 
> lgtm,
> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>

Thanks Umesh - for the series or just this patch? I'd need to update 
your r-b's on patches 3, 6 and 8 to latest as well.

Regards,

Tvrtko


More information about the Intel-gfx mailing list