
[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 空間,不能有巨大的頁表。