Linux 内核在机器检查异常 (MCE) 和线程方面的行为

Linux 内核在机器检查异常 (MCE) 和线程方面的行为

我最近正在使用不完全遵守 PCIe 总线标准的定制硬件,并且从设备读取某些内容会导致总线故障和 Linux 机器检查异常。发生这种情况时,我的应用程序中触发 MCE 的 pthread 将终止。同一进程中的所有其他线程将继续。被杀死的线程在 MCE 时碰巧持有的任何互斥锁都不会被释放,这通常会导致应用程序死锁。

谁能解释 Linux 内核响应 MCE 时的行为?是否期望/打算停止多线程进程中的单个线程?我不知道在任何其他情况下内核可能会单方面终止 LWP,同时保持其父进程处于活动状态,因此我想了解更多相关信息。

相关内容