[igt-dev] [i-g-t] i915/perf: Correct the logic of finding i915 pmu event path
Xu, Terrence
terrence.xu at intel.com
Fri Apr 10 12:32:20 UTC 2020
> -----Original Message-----
> From: Chris Wilson <chris at chris-wilson.co.uk>
> 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
[Xu, Terrence] Thanks for your quick response! Do you think we can use perf_i915_open_group() instead of perf_igfx_open_group() in intel_gpu_top when open pmu? Since i915_perf_type_id() can provide the right i915 pmu.
More information about the igt-dev
mailing list