[igt-dev] [PATCH i-g-t 0/4] device selection && lsgpu
Arkadiusz Hiler
arkadiusz.hiler at intel.com
Mon Dec 2 12:37:41 UTC 2019
On Tue, Nov 12, 2019 at 10:14:13AM +0000, Tvrtko Ursulin wrote:
>
> On 24/10/2019 12:05, Arkadiusz Hiler wrote:
> > Hey,
> >
> > This series aims to make running IGT on hosts with multiple GPUs manageable
> > without the need to unload modules / unbind devices.
> >
> > Suggested reviewing order:
> > * lsgpu
> > * igt_core && drm_test changes
> > * implementation internals in igt_device_scan.c
> >
> > Changes since Zbigniew's last revision:
> > * rewritten most of the parts that were using glib
> > * removed multiple filter support - this will be added back when the need
> > arises
> > * we don't second guess the "chipset" of the device and just let the underlying
> > open to fail if it has to
> > * extra looging around opening device when filter is set
> > * sysfs filter now has it's own prefix
> > * no "platform" filter - sysfs should suffice for now, it can be added by
> > someone more knowledgeable if the need arises
> >
> > TODO:
> > * API for opening multiple devices in a single test (e.g. for prime) - I don't
> > want to design this upfront
> >
> > Example usage:
> > $ build/tools/lsgpu
> > sys:/sys/devices/pci0000:00/0000:00:02.0/drm/card0
> > subsystem : drm
> > drm card : /dev/dri/card0
> > parent : sys:/sys/devices/pci0000:00/0000:00:02.0
> >
> > sys:/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
> > subsystem : drm
> > drm render : /dev/dri/renderD128
> > parent : sys:/sys/devices/pci0000:00/0000:00:02.0
> >
> > sys:/sys/devices/platform/vgem/drm/card1
> > subsystem : drm
> > drm card : /dev/dri/card1
> > parent : sys:/sys/devices/platform/vgem
> >
> > sys:/sys/devices/platform/vgem/drm/renderD129
> > subsystem : drm
> > drm render : /dev/dri/renderD129
> > parent : sys:/sys/devices/platform/vgem
> >
> > sys:/sys/devices/pci0000:00/0000:00:02.0
> > subsystem : pci
> > drm card : /dev/dri/card0
> > drm render : /dev/dri/renderD128
> > vendor : 8086
> > device : 5927
> >
> > sys:/sys/devices/platform/vgem
> > subsystem : platform
> > drm card : /dev/dri/card1
> > drm render : /dev/dri/renderD129
> >
> > $ build/tools/lsgpu -d "sys:/sys/devices/pci0000:00/0000:00:02.0"
> > Notice: Using --device filters
> > === Device filter ===
> > sys:/sys/devices/pci0000:00/0000:00:02.0
> >
> > === Testing device open ===
> > Device detail:
> > subsystem : pci
> > drm card : /dev/dri/card0
> > drm render : /dev/dri/renderD128
> > Device /dev/dri/card0 successfully opened
> > Device /dev/dri/renderD128 successfully opened
> > -------------------------------------------
> >
> > # build/tests/core_auth --run-subtest getclient-simple --device "pci:vendor=intel"
> > IGT-Version: 1.24-g64068440 (x86_64) (Linux: 5.3.7-250.vanilla.knurd.1.fc30.x86_64 x86_64)
> > Starting subtest: getclient-simple
> > Looking for devices to open using filter: pci:vendor=intel
> > Filter matched /dev/dri/card0 | /dev/dri/renderD128
> > Looking for devices to open using filter: pci:vendor=intel
> > Filter matched /dev/dri/card0 | /dev/dri/renderD128 > Subtest getclient-simple: SUCCESS (0.007s)
>
> Looks very usable!
>
> Can I be cheeky and ask if you could also cover the existing tools
> (especially intel_gpu_top (VLK-5588))?
I am happy to do this but I would prefer to do that in the folowup
patches to not bloat this series any more.
https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/51
> Plus I would need a helper to get the selected device PCI string to use with
> i915 PMU? There I'd need to get a string like "0000:01:00.0" since the i915
> PMU registers the device as either:
>
>
> "/sys/bus/event_source/devices/i915" for integrated.
>
> Or:
>
> "/sys/bus/event_source/devices/i915-0000:01:00.0" for discrete.
>
> So I am thinking something like igt_device_get_pci_string() could work for
> lib/igt_perf.c/i915_type_id().
same as above
https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/52
More information about the igt-dev
mailing list