[igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Fix _open_pmu()

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Jun 11 12:17:36 UTC 2020


On 11/06/2020 13:05, Arkadiusz Hiler wrote:
> From: Ayaz A Siddiqui <ayaz.siddiqui at intel.com>
> 
> _open_pmu() was calling perf_igfx_open_group() which in turn was
> calling igt_perf_type_id("i915") each time.
> 
> By making _open_pmu() take type as a parameter and call
> igt_perf_open_group() we achieve two things:
> 
>   * we use the correct type for engines->device instead of the
>     hardcoded "i915"
> 
>   * optimization - we call igt_perf_type_id() once - it's reading
>     sysfs
> 
> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui at intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
> ---
>   tools/intel_gpu_top.c | 15 ++++++++-------
>   1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 476e0a6f..cae01c25 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -438,11 +438,11 @@ static const char *imc_data_writes_unit(void)
>   		return NULL;
>   }
>   
> -#define _open_pmu(cnt, pmu, fd) \
> +#define _open_pmu(type, cnt, pmu, fd) \
>   ({ \
>   	int fd__; \
>   \
> -	fd__ = perf_igfx_open_group((pmu)->config, (fd)); \
> +	fd__ = igt_perf_open_group((type), (pmu)->config, (fd)); \
>   	if (fd__ >= 0) { \
>   		if ((fd) == -1) \
>   			(fd) = fd__; \
> @@ -472,23 +472,24 @@ static int pmu_init(struct engines *engines)
>   {
>   	unsigned int i;
>   	int fd;
> +	uint64_t type = igt_perf_type_id(engines->device);
>   
>   	engines->fd = -1;
>   	engines->num_counters = 0;
>   
>   	engines->irq.config = I915_PMU_INTERRUPTS;
> -	fd = _open_pmu(engines->num_counters, &engines->irq, engines->fd);
> +	fd = _open_pmu(type, engines->num_counters, &engines->irq, engines->fd);
>   	if (fd < 0)
>   		return -1;
>   
>   	engines->freq_req.config = I915_PMU_REQUESTED_FREQUENCY;
> -	_open_pmu(engines->num_counters, &engines->freq_req, engines->fd);
> +	_open_pmu(type, engines->num_counters, &engines->freq_req, engines->fd);
>   
>   	engines->freq_act.config = I915_PMU_ACTUAL_FREQUENCY;
> -	_open_pmu(engines->num_counters, &engines->freq_act, engines->fd);
> +	_open_pmu(type, engines->num_counters, &engines->freq_act, engines->fd);
>   
>   	engines->rc6.config = I915_PMU_RC6_RESIDENCY;
> -	_open_pmu(engines->num_counters, &engines->rc6, engines->fd);
> +	_open_pmu(type, engines->num_counters, &engines->rc6, engines->fd);
>   
>   	for (i = 0; i < engines->num_engines; i++) {
>   		struct engine *engine = engine_ptr(engines, i);
> @@ -508,7 +509,7 @@ static int pmu_init(struct engines *engines)
>   					get_pmu_config(dirfd(engines->root),
>   						       engine->name,
>   						       cnt->counter);
> -			fd = _open_pmu(engines->num_counters, cnt->pmu,
> +			fd = _open_pmu(type, engines->num_counters, cnt->pmu,
>   				       engines->fd);
>   			if (fd >= 0)
>   				engine->num_counters++;
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the igt-dev mailing list