[igt-dev] [i-g-t] i915/perf: Correct the logic of finding i915 pmu event path
Chris Wilson
chris at chris-wilson.co.uk
Fri Apr 10 10:31:11 UTC 2020
Quoting Terrence Xu (2020-04-10 11:20:46)
> Hardcoded i915 PMU event path /sys/bus/event_source/devices/i915
> isn't always correct when vGPU isn't on BDF 0:2.0 in virtualization
> environment.
>
> e.g. It will show as sys/bus/event_source/devices/i915-0000:00:03.0
> when vGPU is on BDF 0:3.0.
>
> Refine the path name so that intel_gpu_top can find the correct adapter.
>
> Signed-off-by: Terrence Xu <terrence.xu at intel.com>
> ---
> lib/igt_perf.c | 15 ++++++++++++++-
> tools/intel_gpu_top.c | 16 +++++++++++++++-
> 2 files changed, 29 insertions(+), 2 deletions(-)
>
> diff --git a/lib/igt_perf.c b/lib/igt_perf.c
> index 418c1c188..3531209b3 100644
> --- a/lib/igt_perf.c
> +++ b/lib/igt_perf.c
> @@ -7,6 +7,7 @@
> #include <sys/stat.h>
> #include <sys/sysinfo.h>
> #include <sys/sysmacros.h>
> +#include <dirent.h>
>
> #include "igt_perf.h"
>
> @@ -75,11 +76,23 @@ uint64_t i915_perf_type_id(int i915)
> uint64_t igt_perf_type_id(const char *device)
> {
> char buf[64];
> + char dev[64];
> ssize_t ret;
> int fd;
> + DIR *dir;
> + struct dirent *dent;
> +
> + dir = opendir("/sys/bus/event_source/devices/");
Nak, this is passed the explicit device to use.
i915_perf_type_id() takes the device fd and expands it to the pmu device
name.
-Chris
More information about the igt-dev
mailing list