Linux的“/proc/meminfo”文件中的HardwareCorrupted、DirectMap4k、DirectMap2M字段是什么意思?

dia*_*ago 7 linux memory terminology

我正在寻找以下术语的描述:

  • HardwareCorrupted, DirectMap4k, DirectMap2MLinux 的“/proc/meminfo”文件中的字段。

我可以从“Free”、“buffer”、“swap”、“dirty”/proc/meminfo 中找到字段的以下描述:

HardwareCorrupted: 最好的ECC

DirectMap* :这是特定于 x86 的,基本上可用的直接映射插槽。

但这种描述是不够的。任何人都可以让我知道“HardwareCorrupted”、“DirectMap4k”、“DirectMap2M”的描述吗?

Ste*_*itt 14

HardwareCorrupted显示“中毒页面”中的内存量,发生故障的内存(通常由 ECC 标记)。ECC 代表“纠错码”。ECC 内存能够纠正小错误并检测大错误;在具有非 ECC 内存的典型 PC 上,不会检测到内存错误。如果使用 ECC(在内存或缓存中,取决于系统的硬件支持)检测到不可纠正的错误,则 Linux 内核会将相应的页面标记为中毒。

DirectMapx86Book3s PowerPCS/390 上显示,并指示 TLB 负载,而不是内存使用:它计算使用每个平台上各种支持的页面大小映射的页面数(对应于不同的页表级别) :4KiB、64KiB、1MiB、2MiB、4MiB、1GiB 或 2GiB 页。TLB,或“翻译后备缓冲区”", 是一种缓存,用于存储虚拟地址(如计算机上运行的软件所见)和内存中的物理页(如​​硬件所见)之间的映射;从虚拟地址到物理地址所涉及的计算和内存获取是昂贵的, 所以缓存被用来避免过于频繁地使用它们。但是 TLB 很小,因此访问各种不同的地址(太多而无法留在缓存中)会导致性能损失。可以通过使用更大的页面来减少这种损失;在x86 架构传统页面大小为 4KiB,但可以使用更大的页面,它们的大小可以是 2MiB、4MiB 或 1GiB。

有关更多详细信息,您可以查看我提供的 Wikipedia 链接,并遵循那里的参考资料。