Como e por que devo especificar mtrr_gran_size / mtrr_chunk_size?


8

Notei hoje que /var/log/dmesgcontém várias dezenas de linhas com informações sobre algo chamado gran_sizee *BAD*gran_size, seguidas pelo que parece ser uma instrução para mim:

[    0.000000] mtrr_cleanup: can not find optimal value
[    0.000000] please specify mtrr_gran_size/mtrr_chunk_size

Preciso fazer o que diz? Como eu iria?

Respostas:


5

MTRR significa registradores de tipo de memória, que é uma nova maneira de particionar e gerenciar recursos de memória em seu sistema. Esse recurso foi colocado nos processadores devido ao tamanho cada vez maior da memória. Tinha que haver uma maneira de que a memória pudesse ser alocada endereçada e usada com mais eficiência.

Uma característica principal do MTRR é mapear os locais dos componentes PCI ou AGP em seu sistema para que o software, os drivers, possam acessá-los com rapidez e eficiência.

(do Gentoo Wiki )

Depois de ler Solucionando problemas de MTRR do linux , parece que o erro que você vê é relatado quando o mtrr sanitizer não pode escolher entre várias opções de layout de memória. Ele deve imprimir uma lista de opções possíveis ao lado da mensagem de erro. Para que a mensagem desapareça, você precisa especificar algo como

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

nos parâmetros de inicialização do kernal (onde os valores reais vêm de uma das opções propostas pelo desinfetante).

O autor do artigo afirma que

Agora, 24MiB de memória RAM se foram, mas minhas cargas de trabalho em 3D, que são basicamente o conteúdo da webgl e o simulador de voo oculto no google earth, rodam com taxas de quadros melhores e significativas.

o que me deixa muito interessado ... preciso verificar dmesgtodas as minhas máquinas.


0

De acordo com [Redhat's Knowledgebase] [1] para RHEL6, atualizado em janeiro de 2017, "especifique mtrr_gran_size / mtrr_chunk_size" significa:

  • Essas mensagens não são um problema e são simplesmente avisos. Eles podem ser ignorados.
  • A inclusão de disable_mtrr_cleanup disable_mtrr_trim nos parâmetros do kernel no /boot/grub/grub.conf desabilitará o caminho do código que inicia esses erros e pode impedir que eles apareçam no sistema.

Claro que sei que o Redhat não é o Ubuntu, mas em geral eles rodam o mesmo kernel, então eu ficaria muito surpreso se não fosse o mesmo para o Ubuntu. Esta resposta é oferecida como uma "segunda opinião".

[1]: https://access.redhat.com/solutions/2852191 - (assinatura necessária)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.