如何以及为什么要指定mtrr_gran_size / mtrr_chunk_size?


8

我今天发现/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

我需要按照说的做吗?我怎么会

Answers:


5

MTRR代表“内存类型”范围寄存器,这是一种在系统中分区和管理内存资源的新方法。由于内存大小越来越大,此功能已被放置在处理器中。必须有一种方法可以更有效地分配和寻址内存。

MTRR的主要功能是映射系统中PCI或AGP组件的位置,以便软件,驱动程序可以快速有效地访问它们。

(来自Gentoo Wiki

阅读了解决Linux MTRR问题后,当mtrr sanitizer无法从内存布局的多个选项中进行选择时,似乎会报告您看到的错误。它应该在错误消息旁边打印可能选项的列表。为了使消息消失,您需要指定类似

enable_mtrr_cleanup mtrr_spare_reg_nr=1 mtrr_gran_size=32M mtrr_chunk_size=128M

在内核启动参数中(实际值来自消毒程序建议的选项之一)。

该文章的作者声称

现在ram的24MiB已经消失了,但是我的3d工作负载(基本上是webgl内容和google Earth内部的隐藏飞行模拟器)都以明显更高的帧速率运行。

这让我非常感兴趣...需要检查dmesg我所有的机器。


0

根据RHEL6的[Redhat知识库] [1](于2017年1月更新),“请指定mtrr_gran_size / mtrr_chunk_size”表示:

  • 这些消息不是问题,仅是警告。它们可以忽略。
  • 在/boot/grub/grub.conf中的内核参数中添加disable_mtrr_cleanup disable_mtrr_trim会禁用引发这些错误的代码路径,并阻止它们出现在系统上。

我当然知道Redhat不是Ubuntu,但是总的来说,它们运行相同的内核,因此如果Ubuntu的内核不相同,我会感到非常惊讶。提供该答案作为“第二意见”。

[1]:https//access.redhat.com/solutions/2852191-(需要订阅)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.