+
    Û1jè  ã                   ó.   € ^ RI HtHt  ! R R]]4      tR# )é    )ÚPluginÚIndependentPluginc                   óF   a € ] tR t^t o RtRtRtRt]R 4       t	R t
RtV tR# )	ÚSpyreuÆ   Spyre chip is IBMâ€™s AI accelerator, designed to handle AI inferencing
and workloads.

The Spyre plugin collects data about the Spyre cardâ€™s VFIO device node
tree, configuration files, and more.
z!IBM Spyre Accelerator InformationÚspyrec                ó
  € . pV '       g   R# V P                  4        F¾  pVP                  4       '       g   K   VP                  ^R7      w  r4rVVP                  4       P                  R4      w  rxTR8X  g   K[  TR9   g   Kd  TP                  R4      ^8X  d
   RT,           p TP                  R4      w  ršpTP                  R4      w  rÍTP                  YšYÍ34       KÀ  	  V#   \         d     KÒ  i ; i  \         d     Kä  i ; i)a/  Extract PCI domain, bus, device, function for devices that match:
- Vendor ID = 0x1014 (IBM)
- Device ID = 0x06a7 or 0x06a8

Parameters
----------
lspci_out : str
The output string from `lspci -n`.

Returns
-------
list of tuples
A list of (domain, bus, device, function) tuples for each matching
card.
N)ÚmaxsplitÚ:Ú1014z0000:Ú.)Ú06a7Ú06a8)Ú
splitlinesÚstripÚsplitÚlowerÚ
ValueErrorÚcountÚappend)Úlspci_outputÚspyre_cardsÚlineÚpci_addrÚ_classÚidsÚ_restÚvendorÚdeviceÚdomainÚbusÚdev_funcÚ
pci_deviceÚfunctions   &             Ú:/usr/lib/python3/dist-packages/sos/report/plugins/spyre.pyÚget_ibm_spyre_devicesÚSpyre.get_ibm_spyre_devices   sü   € ð$ ˆçÙà ×+Ñ+Ö-ˆDØ—:‘:—<’<ÙðØ/3¯z©zÀ1¨zÓ/EÑ,� #Ø!$§¡£×!2Ñ!2°3Ó!7‘�ð ˜Ö FÐ.>Ö$>Ø—>‘> #Ó&¨!Ô+Ø&¨Õ1�HðØ,4¯N©N¸3Ó,?Ñ)�F Ø+3¯>©>¸#Ó+>Ñ(�Jð ×"Ñ" F°Ð#FÖGñ' .ð* Ðøô ô Úðûô "ô Úðús#   ¹6C!Â!'C3Ã!C0Ã/C0Ã3DÄDc                ó"  € V P                  R 4      pVR,          ^ 8w  d   R# V P                  VR,          4      pV'       g   R# V F2  w  r4rVV RV RV RV 2pRV RV RV R2pV P                  VR	R
7       K4  	  V P                  . RO4       R# )zlspci -nÚstatusNÚoutputr
   r   z/sys/devices/pciÚ/z	/vfio-devT)Útree)z/etc/modprobe.d/vfio-pci.confz!/etc/udev/rules.d/95-vfio-3.rulesz#/etc/security/limits.d/memlock.conf)Úexec_cmdr%   Úadd_dir_listingÚadd_copy_spec)	ÚselfÚlspcir   r   r    r   r#   r   Úpci_vfios	   &        r$   ÚsetupÚSpyre.setupH   sª   € à—‘˜jÓ)ˆØ��?˜aÔÙà×0Ñ0°°xµÓAˆ÷ Ùó .9Ñ)ˆF˜Ø ˜  3 % q¨¨°°(°Ð<ˆHØ)¨&¨°°3°%°q¸¸
À)ÐLˆHØ× Ñ  °Ð Ö5ñ .9ð 	×Ñò 
ö 	ó    © N)zppc.*)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
short_descÚplugin_nameÚarchitecturesÚstaticmethodr%   r2   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r$   r   r      s8   ø‡ € ñð 5€JØ€KØ€Màñ+ó ð+÷Zð r4   r   N)Úsos.report.pluginsr   r   r   r5   r4   r$   Ú<module>rC      s   ð÷ 9ôQˆFÐ%ö Qr4   