[igt-dev] [PATCH i-g-t 0/4] device selection && lsgpu
Arkadiusz Hiler
arkadiusz.hiler at intel.com
Thu Oct 24 11:05:11 UTC 2019
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)
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Petri Latvala <petri.latvala at intel.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
Cc: Leo Liu <Leo.Liu at amd.com>
Arkadiusz Hiler (1):
lib/igt_list: Update, clean-up and document igt_list
Zbigniew Kempczyński (3):
Introduce device selection API
Introduce device selection lsgpu tool
Add device selection in IGT
benchmarks/gem_wsim.c | 6 +-
.../igt-gpu-tools/igt-gpu-tools-docs.xml | 2 +
.../igt-gpu-tools/igt_test_programs.xml | 7 +
lib/Makefile.sources | 4 +
lib/drmtest.c | 94 +-
lib/drmtest.h | 2 +
lib/igt_chamelium.c | 2 +-
lib/igt_core.c | 51 +-
lib/igt_device_scan.c | 1199 +++++++++++++++++
lib/igt_device_scan.h | 67 +
lib/igt_dummyload.c | 4 +-
lib/igt_kmod.c | 2 +-
lib/igt_list.c | 66 +
lib/igt_list.h | 165 ++-
lib/meson.build | 2 +
tests/i915/gem_exec_balancer.c | 2 +-
tests/vc4_purgeable_bo.c | 6 +-
tools/Makefile.sources | 1 +
tools/lsgpu.c | 295 ++++
tools/meson.build | 1 +
20 files changed, 1873 insertions(+), 105 deletions(-)
create mode 100644 lib/igt_device_scan.c
create mode 100644 lib/igt_device_scan.h
create mode 100644 lib/igt_list.c
create mode 100644 tools/lsgpu.c
--
2.21.0
More information about the igt-dev
mailing list