[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)Intel至强 E3-1225 v33.2GHz,8MB 缓存,4C/4T,完整规格英特尔方舟+ 它有UDIMM 中 32 GB DDR3。
我设法找到的所有内容MTRR(内存类型范围寄存器)位于维基百科上,遗憾的是我对此也不太了解。有什么或多或少的外行术语的暗示吗?我是否应该关心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:
我看不出什么区别,也许在实际应用中没有什么区别……也许有。
答案1
这存储器类型范围寄存器(MTRR) 可以控制与内存写入相关的缓存行为。在您的两个日志中,没有启用任何特定行为。如果启用它,它看起来像这样(来自我的旧系统):
MTRR default type: uncachable
MTRR fixed ranges enabled:
00000-9FFFF write-back
A0000-EFFFF uncachable
F0000-FFFFF write-protect
MTRR variable ranges enabled:
0 base 000000000 mask FE0000000 write-back
1 base 020000000 mask FF8000000 write-back
2 disabled
3 disabled
4 disabled
5 disabled
6 disabled
7 disabled
通常,这仅适用于较旧的显卡,因为它会影响性能。
因此,您的日志并不表明 MTRR 方面存在异常行为。唯一有潜力的是
pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
如果不查看其余日志或在系统中查看,就不可能说出为什么会出现这种情况:这个内存范围是什么,MTRR 覆盖来自哪里,以及它是否适合在第一名。
所以很可能这也很好,而且它是一些 PCI 卡 I/O 空间,不能有巨大的页表。