Inleiding
Een pariteitsfout is een beetje flip in het geheugen. In elektronica en computers kan elektrische of magnetische interferentie van interne of externe bronnen ervoor zorgen dat een enkel bit of geheugen spontaan naar de tegenovergestelde toestand wordt gespiegeld. Deze gebeurtenis maakt de originele gegevensbits ongeldig en wordt een pariteitsfout genoemd.
Meestal vallen deze fouten in twee verschillende soorten fouten, zacht en hard.
Zachte pariteitsfouten, deze gebeurtenissen zijn voorbijgaand en willekeurig. Meestal worden ze maar één keer gezien in een bepaalde geheugenbank.
Harde pariteitsfouten, worden veroorzaakt door een fysieke storing van de geheugenhardware of door de circuits die worden gebruikt om geheugencellen te lezen en te schrijven. Deze verschijnselen worden gewoonlijk herhaaldelijk waargenomen en moeten worden vervangen.
De meeste pariteitsfouten worden veroorzaakt door elektrostatische of magnetische omgevingsomstandigheden. De meeste single-event fouten in geheugenchips worden veroorzaakt door: achtergrondstraling (zoals neutronen van kosmische straling, nucleaire faciliteiten), elektromagnetische interferentie (EMI), en elektrostatische ontlading. Deze gebeurtenissen kunnen willekeurig de elektrische toestand van een of meer geheugencellen wijzigen of kunnen interfereren met de circuits die worden gebruikt om geheugencellen te lezen en te schrijven.
Probleem
Pariteitsfouten zijn een feit van leven als het gaat om high density geheugen zoals wordt gebruikt in de ASR9k-lijnkaarten. Hoe we ermee omgaan, is eigenlijk alles waarover we controle kunnen hebben. Sommige ASR9k (xmen/tyfoon) lijnkaarten kunnen, onder zeldzame omstandigheden, Layer 1 cache fouten tegenkomen. Deze verschijnen als een kernel paniek in de data cache of instructie cache (DCPERR of ICPERR). Een andere geobserveerde fout is in de verschillende geheugenbanken die door de NP's (netwerkprocessors) op de lijnkaarten worden gebruikt. Deze worden gewoonlijk gezien beginnend met de volgende types van foutenlogboeken:
%PLATFORM-NP-0-NON_RECOVERABLE_SOFT_ERROR
%PLATFORM-NP-3-ECC
%PLATFORM-PFM-0-CARD_RESET_REQ
Het probleem hier is het DCPERR/ICPERR resultaat in een volledige lijnkaart herladen. Hetzelfde gold ook voor de overgrote meerderheid van de verschillende geheugenbanken van de NP. Dit is natuurlijk niet ideaal, omdat de meeste lijnkaarten meerdere NP's hebben. Waarom alle NP's op de lijnkaart beïnvloeden als slechts 1 NP een probleem heeft.
Oplossing
Voor de DCPERR- en ICPERR-fouten die worden gezien op de LC CPU-caches van de tyfoon, hebben we een oplossing om de noodzaak tot paniek te vermijden en de lijnkaart opnieuw te laden. Dit gebeurt met CSCux30405 . Wordt momenteel geïntegreerd in versie 5.3.3 en hoger.
Voor de NP-herinneringen wordt dit veel ingewikkelder. Er is een grote inspanning geweest om de verschillende herinneringen te schrobben om te zien die we veilig kunnen negeren of komen met een minder invloedrijke manier om te herstellen. De meeste hiervan zijn geïntegreerd in 5.3.3 en hoger en er zijn overkoepelende SMU's gebouwd op het merendeel van de populaire releases.
Opmerking: Dit heeft ook een onderpand van CSCvc69282 waar we een kernelcrash kunnen zien als gevolg van aanhoudende onderbrekingen.
Verbeteringen in NP Soft Error Handling
In de laatste helft van 2015 en begin 2016 werden er verschillende verbeteringen aangebracht in de zachte foutafhandeling van NP voor zowel Tyfoon als Tomahawk. De verwerking voor vele verschillende herinneringen werd omgezet van een methode die een lijnkaartreload vereiste in iets eleganter zoals het herstellen van de fout in geheugen of het uitvoeren van een NP snelle reset. Ook de verwerking van fouten die geen functionele impact hebben maar die niet kunnen worden gewist ("kleverig") is verbeterd, zodat de fouten niet langer zouden blijven voorkomen. Daarnaast werden verschillende bugs gefixeerd, vooral voor fouten die voorkomen in NP instructiegeheugen of de interne TCAM. Ongeveer 80-90% van eerder niet-herstelbare fouten kan nu worden hersteld zonder dat hiervoor een opnieuw laden van de lijnkaart nodig is.
Al deze verbeteringen en oplossingen zijn geïntegreerd in de 5.3.3 releases en hierboven. De fixes zijn ook beschikbaar in paraplu SMU's voor alle belangrijke onderhoudsreleases:
434 - CSCux16975
512 - CSCux44633
513 - CSCux16975
531 - CSCux34531
532 - CSCux78563