Re: [PATCH i-g-t 6/6] intel_gpu_top: Add a sanity check discovered busy metric is per engine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 01/12/2021 02:20, Rogozhkin, Dmitry V wrote:
On Fri, 2021-11-19 at 12:59 +0000, Tvrtko Ursulin wrote:
From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

Adding a cross-check with ABI config name space and not just relying
on
sysfs names.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
Cc: Dmitry Rogozhkin <dmitry.v.rogozhkin@xxxxxxxxx>
---
  tools/intel_gpu_top.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 41c59a72c09d..81c724d1fe1c 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -376,6 +376,12 @@ static struct engines *discover_engines(char
*device)
  			break;
  		}
+ /* Double check config is an engine config. */
+		if (engine->busy.config >= __I915_PMU_OTHER(0)) {
+			free((void *)engine->name);
+			continue;
+		}
+
  		engine->class = (engine->busy.config &
  				 (__I915_PMU_OTHER(0) - 1)) >>
  				I915_PMU_CLASS_SHIFT;

This works for me.
Acked-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@xxxxxxxxx>

Thanks, pushed!

However, looking to the existing code down below the place where you've
added a fix, it seems to me that 'free((void *)engine->name)' might be
missing on a number of other error paths and on non-error exit path as
well.

Error paths are all fatal (tool simply exits) so it's moot. No real value to cleanup piecemeal. It is the same for normal exit if that is what you mean. Would be nicer I guess but it's a task for a rainy idle day.

Regards,

Tvrtko



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux