linux-kernel – 重启一个在低频期间无响应的CPU

linux-kernel – 重启一个在低频期间无响应的CPU,第1张

概述我正在进行一组内核更改,这些更改允许我在运行时对CPU进行欠压.我经常遇到的极端低压的一个后果就是CPU变得完全没有反应. 我曾尝试使用函数cpu_up和cpu_down,希望让内核恢复CPU,但无济于事. 有没有办法从这种状态恢复CPU?内核是否有任何可以从这种无响应状态恢复CPU的例程? 首先,为了成功地从低压中获益,每次降低电压(例如在5-10 mV之间)非常重要.然后,在每个还原步骤之后, 我正在进行一组内核更改,这些更改允许我在运行时对cpu进行欠压.我经常遇到的极端低压的一个后果就是cpu变得完全没有反应.

我曾尝试使用函数cpu_up和cpu_down,希望让内核恢复cpu,但无济于事.

有没有办法从这种状态恢复cpu?内核是否有任何可以从这种无响应状态恢复cpu的例程?

解决方法 首先,为了成功地从低压中获益,每次降低电压(例如在5-10 mV之间)非常重要.然后,在每个还原步骤之后,应检查对一个或多个硬件错误度量标准的更改(通常是cpu高速缓存错误率).通常情况是,当电压缓慢下降时,误差率应逐渐增加.但是,在某些时候,将发生无法通过ECC(或处理器正在使用的任何硬件校正机制)纠正的错误.这是执行变得不可靠的时候. Linux通过恐慌来响应此类错误(系统将自动重启或仅挂起).因此,您可能仍然有机会检测到错误并选择继续执行,但即使您立即增加电压,也不能保证正确性.所以这将是一件非常非常危险的事情.它可以很快变得非常讨厌.当您处理另一个错误时可能会发生错误(可能是因为处理错误的代码,所以最安全的做法是中止,请参阅 Peter’s comment).

现代处理器提供配置和处理可纠正和不可纠正的硬件错误的机制.特别是,x86提供了机器检查架构(MCA).默认情况下,在linux中,当发生无法校正的机器检查时,会调用机器检查异常处理程序,这可能会中止系统(尽管它会尝试查看它是否可以安全地以某种方式恢复).如果不使用其他工具,则无法在用户模式下处理.

以下是linux支持的不同x86 MCE tolerance levels:

struct mca_config mca_cfg __read_mostly = {    .bootlog  = -1,/*     * Tolerant levels:     * 0: always panic on uncorrected errors,log corrected errors     * 1: panic or SIGBUS on uncorrected errors,log corrected errors     * 2: SIGBUS or log uncorrected errors (if possible),log corr. errors     * 3: never panic or SIGBUS,log all errors (for testing only)     */    .tolerant = 1,.monarch_timeout = -1};

请注意,默认容差值为1.但是,由于您正在修改内核,因此可以通过更改容错级别或处理代码本身来更改linux处理MCE的方式.您可以开始使用machine_check_poll和do_machine_check功能.

用户模式工具可以使您能够分析并可能响应机器检查,包括mcelog和mcedaemon.在英特尔手册的第3卷第15章和第16章中讨论了MCA.对于ARM,您还可以配置缓存ECC错误,如here中所述.

非常重要的是要理解,当降低电压超过标称值时,同一芯片的不同内核可能表现不同.这是由于工艺变化造成的.因此,不要假设电压降低可以在同一芯片的内核或芯片上工作.您将不得不在每个芯片的每个核心上测试它(如果您有多个插槽).

I’ve trIEd using functions cpu_up and cpu_down in the hope of asking
the kernel to restore the cpu,but to no avail.

这些功能是Hotplug cpu基础结构的一部分.这里不太有用.

总结

以上是内存溢出为你收集整理的linux-kernel – 重启一个在低频期间无响应的CPU全部内容,希望文章能够帮你解决linux-kernel – 重启一个在低频期间无响应的CPU所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1017371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存