Introduzione
Un errore di parità è un bit flip in memoria. Nell'elettronica e nell'informatica, le interferenze elettriche o magnetiche provenienti da fonti interne o esterne possono causare il capovolgimento spontaneo di un singolo bit o memoria allo stato opposto. Questo evento rende i bit di dati originali non validi ed è noto come errore di parità.
In genere questi errori si suddividono in due tipi diversi di errori, soft e hard.
Errori di parità soft, questi eventi sono transitori e casuali. Di solito si vedono solo una volta in un particolare banco di memoria.
Gli errori di parità rigida, sono causati da un malfunzionamento fisico dell'hardware di memoria o dai circuiti utilizzati per leggere e scrivere le celle di memoria. In genere vengono visualizzate più volte e devono essere sostituite.
La maggior parte degli errori di parità è causata da condizioni ambientali elettrostatiche o magnetiche. La maggior parte degli errori di evento singolo nei chip di memoria sono causati da: radiazioni di fondo (come neutroni da raggi cosmici, impianti nucleari), interferenze elettromagnetiche (EMI) e scariche elettrostatiche. Questi eventi possono cambiare in modo casuale lo stato elettrico di una o più celle di memoria o possono interferire con i circuiti utilizzati per leggere e scrivere celle di memoria.
Problema
Gli errori di parità sono un dato di fatto quando si tratta di memoria ad alta densità, come viene utilizzato nelle linecard ASR9k. Quindi il modo in cui li gestiamo è tutto ciò su cui possiamo avere controllo. Alcune linecard ASR9k (xmen/tifone), in rare condizioni, possono incontrare errori nella cache di layer 1. Questi si presentano come un errore irreversibile del kernel nella cache di dati o di istruzioni (DCPERR o ICPERR). Un altro errore osservato è nei vari banchi di memoria utilizzati dagli NP (processori di rete) sulle schede di linea. In genere questi tipi di log degli errori vengono visualizzati a partire dai tipi di log degli errori seguenti:
%PLATFORM-NP-0-NON_RECOVERABLE_SOFT_ERROR
%PLATFORM-NP-3-ECC
%PLATFORM-PFM-0-CARD_RESET_REQ
Il problema qui è che il risultato di DCPERR/ICPERR è un ricaricamento completo della scheda di linea. Lo stesso vale per la stragrande maggioranza delle varie banche di memoria NP. Questo ovviamente non è ideale, in quanto la maggior parte delle linecard ha più NP. Perché influire su tutti gli NP sulla scheda di linea se solo 1 NP ha un problema.
Soluzione
Per gli errori DCPERR e ICPERR rilevati sulle cache CPU LC del tifone, abbiamo una soluzione per evitare il panico e ricaricare la scheda di linea. Questa operazione viene eseguita con CSCux30405. Attualmente integrato nella versione 5.3.3 e successive.
Per la memoria della NP è molto più complicato. C'è stato un grande sforzo per sfregare i vari ricordi per vedere quali possiamo tranquillamente ignorare o venire con un modo meno impattante di recuperare. La maggior parte delle quali sono state integrate nella versione 5.3.3 e successive e sono state create delle SMU ombrello sulla maggior parte delle versioni più diffuse.
Nota: questo ha causato anche un collaterale di CSCvc69282 in cui è possibile che si verifichi un arresto anomalo del kernel a causa di continui interrupt.
Miglioramenti gestione errori soft NP
Nell'ultima metà del 2015 e all'inizio del 2016, sono stati apportati numerosi miglioramenti alla gestione degli errori NP sia per Typhoon che per Tomahawk. La gestione di molte memorie diverse è stata convertita da un metodo che richiedeva un ricaricamento della linecard a qualcosa di più grazioso, come riparare l'errore in memoria o eseguire un resettaggio veloce NP. Anche la gestione degli errori che non hanno un impatto funzionale ma che non possono essere cancellati ("sticky") è stata migliorata, in modo che gli errori non continuino più a ripetersi. Sono stati inoltre risolti diversi bug, specialmente per gli errori che si verificano nella memoria delle istruzioni NP o nella TCAM interna. Circa l'80-90% degli errori non recuperabili in precedenza è ora recuperabile e non richiede un ricaricamento della scheda di linea.
Tutti questi miglioramenti e correzioni sono integrati nelle release 5.3.3 e successive. Le correzioni sono disponibili anche in SMU ombrelli per tutte le principali versioni di manutenzione:
434 - CSCux16975
512 - CSCux44633
513 - CSCux16975
531 - CSCux34531
532 - CSCux78563