[Sun Mar 1 07:51:40 2020] MTRR default type: uncachable
[Sun Mar 1 07:51:40 2020] MTRR fixed ranges enabled:
[Sun Mar 1 07:51:40 2020] MTRR variable ranges enabled:
[Sun Mar 1 07:51:40 2020] pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
几天前我重新启动服务器后,刚刚注意到这些消息。
可能相关:
enable_mtrr_cleanup
在内核参数中找到,我引用:
The kernel tries to adjust MTRR layout from continuous to discrete, to make X server driver able to add WB entry later. This parameter enables that.
我不明白上面的意思,但我觉得我应该提到硬件:
这是戴尔的旧款 PowerEdge T20,配备 CPU(和 iGPU)英特尔至强 E3-1225 v3 3.2GHz、8MB 缓存、4C/4T、英特尔方舟的完整规格+ 它在 UDIMM 中有 32 GB 的 DDR3。
我设法在MTRR(内存类型范围寄存器)上找到的所有内容都在 Wikipedia 上,遗憾的是我对此也不太了解。或多或少外行的任何提示?我什至应该关心dmesg
我的 Debian 10 上的那个消息吗?
与上面的服务器相反,这里有相关部分提到硬件上的 MTRR,这是我的新笔记本电脑,也来自戴尔,Inspiron 15,SO-DIMM 中的 32 GB DDR4:
[Sat Mar 7 10:00:42 2020] MTRR default type: write-back
[Sat Mar 7 10:00:42 2020] MTRR fixed ranges enabled:
[Sat Mar 7 10:00:42 2020] MTRR variable ranges enabled:
我看不出有什么区别,也许在实际应用程序中没有……也许有。
内存类型范围寄存器(MTRR) 可以控制与内存写入相关的缓存行为。在您的两个日志中,都没有启用任何特定行为。如果启用,它看起来像这样(来自我的旧系统):
通常,这仅适用于较旧的显卡,因为它会影响性能。
因此,您的日志并未表明与 MTRR 有关的异常行为。唯一可能的事情是
如果没有看到其余的日志,或者在您的系统中四处寻找,就不可能说出为什么会出现这种情况:这个内存范围是什么,MTRR 覆盖来自哪里,以及它是否适合在第一名。
所以很有可能这也很好,而且它是一些 PCI 卡 I/O 空间,不能有巨大的页表。