1

并不是所有不可修正错误都值得大惊小怪:服务器RAS功能Data Poisoning介绍

 2 years ago
source link: https://zhuanlan.zhihu.com/p/450926953
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

并不是所有不可修正错误都值得大惊小怪:服务器RAS功能Data Poisoning介绍

中央处理器 (CPU)等 3 个话题下的优秀答主

现代人每天产生很多数据,小到我们上网的数据,大到银行户头中的金额,这些数据都是存储在服务器中。数据在存储和传输中,错误不可避免,甚至运气不好,逃过臭氧的宇宙射线也能让一个bit发生翻转。服务器为了对抗错误发生,设计了各种的RAS(Reliability, Availability,Serviceability 高可靠性、高可用性、高服务性)的功能。本质上来说,RAS功能是通过提供冗余来对抗错误。

尽管有了各种RAS功能,能够在大多数情况下修正错误,但发生了多bit错误后,不可修正错误还是会发生。在x86刚进入服务器领域的前期,发生这种错误,基本上就是蓝屏或者Kernel Panic了事:

v2-f783364a81aa1bf5e9e2465df690fa69_720w.jpg

但如果我们仔细思考一下,就会觉得这样并不合理,太粗暴了。如果银行户头金额发生错误,这个绝对不能接受;但如果银屏上有几个点的错误,又有谁会注意呢?尽管都是错误,但这种错误和那种错误还是不同的,不能简单一概宕机了事。

为了抑制不可修正导致的宕机,提高系统的可用性,就要区分这两种错误。但令人头疼的是,这两种错误,往往都是在同一个源头发生的,要区分它们,不能在源头,要在使用者这两进行分野。于是,传统大型机中错误数据抑制(Error Data Containment)机制,Data Poisoning也被移植到了x86服务器中。

Data Poistioning是什么?

我们先来对错误进行一下划分,如图:

v2-17b70fe0788a1811a3c65b6e6c05e8e9_720w.jpg来源:参考资料1

错误粗分为两种:可修正错误和不可修正错误。可修正错误,往往通过RAS的WHEA/APEI log完,报告OS了事。不可修正错误又分为灾难错误、致命错误和可以恢复错误。前两种叫做DUE(已检测出但不能修正)错误,后一种叫做(不可修正,但可以恢复错误)。

Data Poisioning作为错误抑制的手段,目标是识别出尽量多的DUE错误,将它们尽量降级到UCR错误甚至是可修正错误,它是怎么做到的呢?

Poisoning,中毒、有毒的意思。简单来说,就是在数据发生错误的源头,如内存控制器发现不可修正错误了,它不能像以前一样直接汇报DUE错误了事,而是把错误记下来。然后转交给数据通路上的下一个IP;下一个IP将这个错误进行转发,叫做Poiston Forwarding;就这样,一级一级传递,直到最后的使用者;使用者有最后的决定权,它基本上有三种选择:还认为是DUE,不接受数据,报告错误;不接受数据,但不报告错误;甚至接受数据,也不报告错误。这个错误记录和转发,往往通过在数据链路上都增加一个硬件的poision bit来实现。

举个例子,如果是最终用户是CPU内核,它可能就会认为错误很严重,不可以忽略,进而选择方案一;而如果最终用户是GPU,它可能就会认为无所谓,而选择方案三了。

Data Poisioning不是Intel的发明,而是从IBM的大型机上借鉴来的。它先用在了Intel的IA64(IPF)平台上,后移植到了x86服务器中。经过几代演进,还增加了很多子功能。不但如此,AMD服务器CPU也有了这个功能,甚至现在某些ARM服务器CPU也有了这个功能。这个功能抑制了DUE的发生,提高了系统可用性,是服务器RAS功能集合中一个重要的子功能集。

最后,很多朋友在群里面问,让推荐UEFI的学习书籍。我还是推荐朋友Robin的新书《UEFI编程实践》

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。关注公众号,留言“资料”,有一些公开芯片资料供下载。

v2-91d380fba0955ebce85e5bf264d63cf6_720w.jpg
  1. Automatic Fundation for fault diagnosis- Intel Tech Journal vol 16

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK