diff mbox series

[7/8] drm/i915: Count engine instances per uabi class

Message ID 20220222140422.1121163-8-tvrtko.ursulin@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series Per client GPU utilisation | expand

Commit Message

Tvrtko Ursulin Feb. 22, 2022, 2:04 p.m. UTC
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

This will be useful to have at hand in a following patch.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@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(-)

Comments

Umesh Nerlige Ramappa March 1, 2022, 7:34 p.m. UTC | #1
On Tue, Feb 22, 2022 at 02:04:21PM +0000, Tvrtko Ursulin wrote:
>From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
>This will be useful to have at hand in a following patch.
>
>Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@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@intel.com>

Umesh
>
> 	struct resource mch_res;
>
>-- 
>2.32.0
>
Tvrtko Ursulin March 2, 2022, 9:03 a.m. UTC | #2
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@intel.com>
>>
>> This will be useful to have at hand in a following patch.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@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@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
Umesh Nerlige Ramappa March 4, 2022, 12:06 a.m. UTC | #3
On Wed, Mar 02, 2022 at 09:03:18AM +0000, Tvrtko Ursulin wrote:
>
>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@intel.com>
>>>
>>>This will be useful to have at hand in a following patch.
>>>
>>>Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@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@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.

I checked out the diff between this series and the previous one. The 
changes look good.

For the series:
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Thanks,
Umesh
>
>Regards,
>
>Tvrtko
diff mbox series

Patch

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];
 
 	struct resource mch_res;