Linux 如何抵抗单事件干扰?

Linux 如何抵抗单事件干扰?

我正在为我在大学的报告收集有关单一事件干扰的信息。
我发现了很多对我的主题有用的文章,但我却被操作系统对 SEU 的抵制所困扰。我选择 Linux 作为实时系统中使用的一种。
我认为这个操作系统有一些可安装或内置的容错模块,可以解决大多数问题。但我找不到任何关于它如何在 Linux(不是硬件)中工作的新文章/文档。
让我分享一下我发现的内容:

  • 这个是 1995 年 FT-Linux 的一些 AD;
  • 太复杂了,而且是基于 Popcorn Linux 制作的。

我确信原理是相同的,但我想找到一些代码示例,其中包含来自 Linux 源代码的注释(如果它在核心中实现)或 Linux 中 FT 的实用程序名称。以及如何运行它。
或者也许所有 FT 系统都是商业且非开源的?还是他们没有足够的重视?

答案1

Linux 内核确实具有针对单事件干扰或 SEU 的内置容错能力,但它并没有涵盖“大多数问题”。它仅在特定的 FPGA 驱动程序中实现。

在 Linux 内核邮件列表的电子邮件链中,可以在此处找到:http://lkml.iu.edu/hypermail/linux/kernel/1810.2/06092.html几年前,SEU 容差似乎已添加到内核中,但仅适用于 Zynq FPGA。据我所知,在 drivers/fpga/zynq-fpga.c 中添加了从 PCAP 切换到 ICAP 的代码块(如下所示)。 Mike Looijmans 提到的 ICAP 用例之一是它通过“自我修复逻辑”来抵抗 SEU。

/* Release 'PR' control back to the ICAP */
zynq_fpga_write(priv, CTRL_OFFSET,
zynq_fpga_read(priv, CTRL_OFFSET) & ~CTRL_PCAP_PR_MASK);

我比代码更了解邮件列表的内容,但我会尽力澄清任何令人困惑的地方。

相关内容