AMD 针对EPYC 7002“罗马”服务器芯片的最新处理器修订指南揭示了一个有趣的新错误(勘误表),该错误可能导致芯片上的核心在正常运行时间 1,044 天(约 2.93 年)后挂起,之后您将不得不重置服务器以使芯片正常运行。AMD 表示不会解决该问题。
AMD 对影响其第二代 EPYC 处理器(AMD 的第四代 Genoa 芯片是最新的)的问题的描述简洁明了,但有很多问题需要解决。
问题源于核心未能退出 CC6 睡眠状态,但 AMD 表示,失败的时间可能因扩频和 REFCLK 频率而异,后者是帮助芯片跟踪时间的参考时钟。
Reddit 用户acid_migrain对核心挂起的确切时间有一个合理的理论,他说:“不管他们怎么说,问题实际上出现在 1042 天大约 12 小时。TSC 在 2800 MHz 和 2800 * 10**6 * 1042.5 天几乎等于 0x380000000000000,它有太多的零不是巧合。”
解决方法很简单——要么在 1,044 天的正常运行时间之前重新启动,这会重置 CPU 以重新启动您的 1,044 天“计时器”,要么禁用 CC6 睡眠状态。
现在,虽然这个 2.93 年的核心崩溃错误很有趣,但问题是它是否真的重要。当然,这很重要,尽管安全更新和维护应该以非常非常短的间隔进行。
最现实的情况就是那些使用 Linux 实时修补功能或 kexec 进行更新而无需重新启动的情况——这肯定会导致正常运行时间延长,从而触发该错误。此外,用于关键任务应用程序的服务器通常会延长正常运行时间。
虽然这个错误很有趣,但它对大多数用户来说并不是一个问题,而且芯片中的勘误表也很常见。现代 CPU 是人类构造的最复杂的设备,它们进入市场时几乎总是在芯片达到最终装运修订版(步进)期间或之后发现大量勘误表/错误。这里有更多关于它的内容。