[igt-dev] [RFC] IGT device scanning and selection
Ser, Simon
simon.ser at intel.com
Tue Jun 4 08:29:42 UTC 2019
On Tue, 2019-06-04 at 08:09 +0000, Kempczynski, Zbigniew wrote:
> Hi all.
>
> IGT device management is a little bit old. More than one GPU on the machine
> are available on the market from years so there's time to propose new device
> management in IGT.
Nice! There is definitely room for improvement here, thanks for working
on this!
I think we already have an env variable for (some of) this:
IGT_FORCE_DRIVER. It's not great though.
> Selection using bus-device or functional specifiers.
> ---
> 1. bus-device selection
> Current devices are mostly PCI-Express devices, but we should be able to
> open to specify device using any bus selection. For example:
> --device PCI:00:02.0
> would select PCI device on 00 bus, 02 device and function 0.
>
> --device USB:002:003
> would select device 003 on bus 002.
Why not specify the DRM node path, instead of this?
> Future buses can be specified by extending --device argument parsing.
Some devices like the Raspberry Pi use platform buses. vc4 uses IGT, so
it would be nice to support that.
> 2. Functional selection
> CI environments shouldn't rely on bus-device. Same devices (GPUs) may be
> inserted into different slots so functional selection is required.
>
> Let's imagine machine have 5 cards:
> 00:02:0 - VendorX, product: A
> 00:03:0 - VendorY, product: B
> 00:04:0 - VendorX, product: A
> 00:05:0 - VendorY, product: C
> 00:06:0 - VendorX, product: D
>
> We should be able to select same device regardless order on the bus.
> For example:
> --device VendorX:A
> --device VendorX:A:0
> will select first A card of VendorX
>
> --device VendorY:A:1
> will select second A card of VendorX
Hmm. What defines the order between the "first" and the "second" one?
This doesn't seem like it's "regardless order on the bus" to me? Am I
missing something?
> If vendor would like to have its own parsing method for the product
> overriding parsing will be possible. For example:
> --device VendorX:GPU-Card:0
> VendorX must then register its own function to handle 'GPU-Card:0'
> string on his own.
What is the use-case for this?
>
> ===
>
> Device management
> ---
> New device management should allow user to see current devices.
> I propose IGT tool called 'lsgpu' which would discover devices in
> any registered bus topologies scanning methods.
I believe we can do everything with libdrm's drmGetDevice.
Note that some utilities (e.g. https://github.com/ascent12/drm_info)
already expose this functionality to some extend.
More information about the igt-dev
mailing list