[igt-dev] [RFC] IGT device scanning and selection

Kempczynski, Zbigniew zbigniew.kempczynski at intel.com
Tue Jun 4 08:09:55 UTC 2019


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.

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.
  
   Future buses can be specified by extending --device argument parsing.

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

   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. 

===

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.

---
Best,
Zbigniew Kempczyński







More information about the igt-dev mailing list