我今天注意到它/var/log/dmesg包含了几十行关于名为gran_sizeand 的信息*BAD*gran_size,然后是对我来说似乎是一条指令:
[ 0.000000] mtrr_cleanup: can not find optimal value
[ 0.000000] please specify mtrr_gran_size/mtrr_chunk_size
Run Code Online (Sandbox Code Playgroud)
我需要按照它说的去做吗?我会怎样?
MTRR 代表内存类型范围寄存器,它是一种在系统中分区和管理内存资源的新方法。由于内存大小越来越大,此功能已被放置在处理器中。必须有一种方法可以更有效地分配和使用内存。
MTRR 的一个主要功能是映射系统中 PCI 或 AGP 组件的位置,以便软件、驱动程序可以快速有效地访问它们。
(来自Gentoo 维基)
在阅读解决 linux MTRR 问题后,您看到的错误似乎是在mtrr sanitizer无法从多个内存布局选项中进行选择时报告的。它应该在错误消息旁边打印可能选项的列表。要使消息消失,您需要指定类似
enable_mtrr_cleanup mtrr_spare_reg_nr=1 mtrr_gran_size=32M mtrr_chunk_size=128M
Run Code Online (Sandbox Code Playgroud)
在内核启动参数中(其中实际值来自消毒剂提出的选项之一)。
文章作者声称
现在 24MiB 的 ram 不见了,但我的 3d 工作负载,基本上是 webgl 内容和谷歌地球中隐藏的飞行模拟器,以明显更好的帧速率运行。
这让我很感兴趣……需要检查dmesg我所有的机器。