[pcied] Honour PCIE_DETACH_INFO on platforms that are not smartswitches

Ouverte Adaptée aux débutants
#900 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python

Piste de recherche

Commencez dans sonic-pcied/scripts/pcied en vérifiant la configuration inconditionnelle de PCIE_DETACH_INFO autour de la ligne 109 ainsi que le traitement réservé à smartswitch autour des lignes 211-213. Suivez l’impact d’un bus_info détaché sur le résultat de poll, err et PCIE_DEVICES|status. C’est terminé lorsque les périphériques détachés intentionnellement sont pris en compte sur les plateformes qui ne sont pas smartswitch, sans laisser status à FAILED.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

pcied only consults the PCIE_DETACH_INFO table when the platform is a smartswitch:

https://github.com/sonic-net/sonic-platform-daemons/blob/a9d71d7218e72423b3b993c39cfb07f1cdac8705/sonic-pcied/scripts/pcied#L211-L213

On anything else device_info.is_smartswitch() is False, so the table is never read and a device that has been deliberately detached is reported as missing on every poll:

pcied: PCIe Device: <name> Not Found

err is non-zero as a result, so PCIE_DEVICES|status in STATE_DB stays FAILED for as long as the device is detached, which in turn trips anything watching that field (e.g. loganalyzers in sonic-mgmt tests).

Nothing about the table is smartswitch-specific. pcied creates it unconditionally at startup:

https://github.com/sonic-net/sonic-platform-daemons/blob/a9d71d7218e72423b3b993c39cfb07f1cdac8705/sonic-pcied/scripts/pcied#L109

and its contract is just "this bus_info is expected to be absent right now". Smartswitches are simply the first consumer; a fixed-form switch that detaches a PCIe device to upgrade it in service (an FPGA or a retimer, say) has exactly the same need and no way to express it.

pcied should honour PCIE_DETACH_INFO regardless of platform type.

Langage dominant
Python
Étoiles
38
Forks
236
Merge moyen
3 j 18 h
PR mergées (30 j)
5

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de sonic-net/sonic-platform-daemons

Toutes les issues de sonic-net/sonic-platform-daemons

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.