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