gpt4 book ai didi

Linux 设备驱动程序不安全的 FXSAVE/FXRSTOR 错误——有先例吗?

转载 作者:太空狗 更新时间:2023-10-29 11:23:29 25 4
gpt4 key购买 nike

有一个棘手的问题暂时难住了我公司的一些工程师,他们正在尝试调试它。

C++ 程序通常在具有 MPI 的多核计算机集群上运行。

它会运行很长时间——也许几天——然后突然失败。

大多数从事此工作的工程师已经排除了程序本身出现错误的任何合理可能性,因此他们开始将责任归咎于可能的硬件问题,但我怀疑 Linux 内核中一定存在软件问题模块或设备驱动程序。

怀疑 是内核模块或设备驱动程序,为了进行一些浮点计算,正在以在 SMP 系统上不安全的方式执行 FXSAVE/FXRSTOR。它可以像在需要重入的内核例程中对静态缓冲区执行 FXSAVE 一样简单。这会产生一个竞争条件错误,该错误很少会破坏线程的浮点上下文。

在应用程序级别,似乎正在发生的事情是 MXCSR 的一个或多个位——它是 FXSAVE/FXRSTOR 上下文的一部分——突然更改,但没有应用程序代码来更改它。

我多年前在 Windows 上遇到过类似的事情,最终证明是视频驱动程序中的错误,因此当应用程序代码被操作系统抢占时,该线程上下文中的某些 MXCSR 位已损坏。

我不是 Linux 内核黑客或设备驱动程序开发方面的专家,但我读到重入规则已经发生了很大变化;在非 SMP 和 SMP(多核)系统之间;内核版本之间;等等。所以出现竞争条件错误的可能性似乎是合理的。

所以我的问题是:是否有符合该描述的已知 Linux 驱动程序(或内核)错误?

如果他们有类似的症状,我可以引用的任何先例都会有所帮助。在这一点上,很多相关人员(恕我直言)在浪费时间思考“好吧,我的代码中没有错误,所以它一定是硬件不好。”我想让他们超越这一点,寻找更有可能是真正原因的东西。

最佳答案

您的内核的源代码是可用的,通常是 src.rpm。您可以提取它(以及里面的 .tgz),然后 grep 一切以获取 fxsave asm 指令等。如果你找到什么我会很惊讶,但谁知道呢?如果您正在运行任何二进制视频驱动程序,请查看在不加载它们的情况下问题是否仍然存在。

  1. 下载 kernel-2-whatever.src.rpm
  2. mkdir 温度;光盘温度
  3. rpm2cpio ../内核*rpm | cpio-id
  4. tar xvf linux-*.tgz
  5. grep -ri fxsave *

关于Linux 设备驱动程序不安全的 FXSAVE/FXRSTOR 错误——有先例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/431045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com