简介
奇偶校验错误是内存中的位翻转。 在电子和计算中,来自内部或外部源的电或磁干扰可能导致单个位或存储器自发地翻转成相反的状态。 此事件使原始数据位无效,称为奇偶校验错误。
通常,这些错误分为两种不同的错误类型:软错误和硬错误。
软奇偶校验错误,这些事件是瞬时和随机的。 它们通常只在特定的内存库中出现一次。
硬奇偶校验错误是由存储器硬件的物理故障或用于读取和写入存储器单元的电路引起的。 它们通常反复出现,需要更换。
大多数奇偶校验错误是由静电或磁相关的环境条件引起的。 内存芯片中的大多数单事件错误是由背景辐射(例如宇宙射线的中子、核设施)、电磁干扰(EMI)和静电放电引起的。 这些事件可以随机地改变一个或多个存储单元的电状态,或者可以干扰用于读取和写入存储单元的电路。
问题
对于ASR9k线卡中使用的高密度内存,奇偶校验错误是现实生活中的情况。 我们如何应对这些问题是我们所能控制的全部。某些ASR9k(xmen/typhoon)线卡在极少数情况下可能会遇到第1层缓存错误。 这些错误在数据缓存或指令缓存(DCPERR或ICPERR)中显示为内核死机。另一个观察到的错误在于线卡上的NP(网络处理器)使用的各种内存库。 通常从以下类型的错误日志开始可以看到这些日志:
%PLATFORM-NP-0-NON_RECOVERABLE_SOFT_ERROR
%PLATFORM-NP-3-ECC
%PLATFORM-PFM-0-CARD_RESET_REQ
问题在于DCPERR/ICPERR导致完全的线路卡重新加载。 大多数NP内存库也是如此。 这显然是不理想的,因为大多数线卡具有多个NP。 如果只有1个NP出现问题,为什么会影响线卡上的所有NP。
解决方案
对于在台风LC CPU缓存上出现的DCPERR和ICPERR错误,我们有一个解决方案,可避免死机和重新加载线路卡。 这通过CSCux30405完成。当前集成在版本5.3.3及更高版本中。
对NP记忆来说,这要复杂得多。 我们做了大量的努力来清理各种记忆,看看我们可以放心地忽略这些记忆,或者采用一种不那么有影响的恢复方式。 其中大部分已集成到5.3.3及更高版本中,并且有基于大多数流行版本的总体SMU。
注意:这还导致CSCvc69282 我们可能会看到由于持续中断导致内核崩溃。
NP软错误处理改进
在2015年下半年和2016年初,NP软错误处理在台风和战斧进行了大量改进。 对许多不同内存的处理由需要线卡重新加载的方法转换为更流畅的方法,例如修复内存中的错误或执行NP快速重置。 对没有功能影响但无法清除的错误(“粘性”)的处理也有所改进,这样错误便不再继续发生。 此外,还修复了多种Bug,特别是在NP指令存储器或内部TCAM中发生的错误。 约80-90%的以前不可恢复的错误现在可恢复,不需要重新加载线路卡。
所有这些改进和修复都集成在5.3.3版本及更高版本中。 这些修复也可在总体SMU中用于所有主要维护版本:
434 - CSCux16975
512 - CSCux44633
513 - CSCux16975
531 - CSCux34531
532 - CSCux78563