Introduction
Um erro de paridade é um bit de inversão na memória. Em eletrônica e computação, a interferência elétrica ou magnética de fontes internas ou externas pode fazer com que um único bit ou memória mude espontaneamente para o estado oposto. Esse evento torna os bits de dados originais inválidos e é conhecido como erro de paridade.
Normalmente, esses erros se dividem em dois tipos diferentes de erros: soft e hard.
Erros de paridade suaves, esses eventos são transitórios e aleatórios. Eles normalmente só serão vistos uma vez em um banco de memória específico.
Os erros de paridade difícil são causados por um mau funcionamento físico do hardware de memória ou pelo circuito usado para ler e gravar células de memória. Estes são geralmente vistos repetidamente e exigem substituição.
A maioria dos erros de paridade é causada por condições ambientais eletrostáticas ou relacionadas à magnética. A maioria dos erros de evento único em chips de memória é causada por: radiação de fundo (como nêutrons de raios cósmicos, instalações nucleares), interferência eletromagnética (EMI) e descarga eletrostática. Esses eventos podem alterar aleatoriamente o estado elétrico de uma ou mais células de memória ou podem interferir nos circuitos usados para ler e gravar células de memória.
Problema
Os erros de paridade são uma realidade quando se trata de memória de alta densidade, como é usado nas placas de linha ASR9k. Então como lidamos com eles é tudo que podemos controlar. Algumas placas de linha ASR9k (xmen/typhoon), sob condições raras, podem encontrar erros de cache da camada 1. Eles aparecem como uma pane do kernel no cache de dados ou no cache de instruções (DCPERR ou ICPERR). Outro erro observado está nos vários bancos de memória usados pelos NPs (processadores de rede) nas placas de linha. Geralmente, eles são vistos começando com os seguintes tipos de logs de erro:
%PLATFORM-NP-0-NON_RECOVERABLE_SOFT_ERROR
%PLATFORM-NP-3-ECC
%PLATFORM-PFM-0-CARD_RESET_REQ
O problema aqui é que o resultado DCPERR/ICPERR em uma recarga de placa de linha completa. O mesmo foi verdade para a grande maioria dos vários bancos de memória NP também. Obviamente, isso não é ideal, pois a maioria das placas de linha tem vários NPs. Por que afetar todos os NPs na placa de linha se apenas 1 NP tem um problema?
Solução
Para os erros de DCPERR e ICPERR vistos nos caches da CPU da LC do tufão, temos uma solução para evitar a necessidade de entrar em pane e recarregar a placa de linha. Isso é feito com o CSCux30405. Atualmente integrado na versão 5.3.3 e superior.
Para as memórias NP isso fica muito mais complicado. Houve um grande esforço para esfregar as várias memórias para ver quais podemos ignorar com segurança ou vir com uma maneira menos impactante de se recuperar. A maioria dos quais foram integrados no 5.3.3 e superior e houve SMUs de guarda-chuva construídos na maioria das versões populares.
Observação: isso também causou um colateral do CSCvc69282 onde podemos ver uma falha no kernel devido a interrupções contínuas.
Aprimoramentos de tratamento de erro NP Soft
Durante o último semestre de 2015 e início de 2016, várias melhorias foram feitas para o tratamento de erros NP soft para Typhoon e Tomahawk. O manuseio de muitas memórias diferentes foi convertido de um método que exigia uma recarga de placa de linha para algo mais gracioso, como reparar o erro na memória ou executar uma reinicialização NP rápida. O tratamento de erros que não têm um impacto funcional, mas que não podem ser eliminados ("aderentes"), também foi melhorado para que os erros não continuem a ocorrer. Além disso, vários bugs foram corrigidos, especialmente para erros que ocorrem na memória de instrução NP ou na TCAM interna. Aproximadamente 80 a 90% dos erros anteriormente não recuperáveis são recuperáveis e não exigem uma recarga da placa de linha.
Todas essas melhorias e correções estão integradas nas versões 5.3.3 e superiores. As correções também estão disponíveis em SMUs de guarda-chuva para todas as principais versões de manutenção:
434 - CSCux16975
512 - CSCux44633
513 - CSCux16975
531 - CSCux34531
532 - CSCux78563