Es MUY recomendable comprobar si los registros MTRR están correctamente establecidos, porque pueden proporcionar un aumento considerable de rendimiento.
Haga cat /proc/mtrr:
--($:~)--
cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
Esto es lo correcto, muestra mi Matrox G400 con 16MB de memoria. Tengo esto por usar XFree 4.x.x, que configura los registros MTRR automáticamente.
Si no funciona, deberá hacerlo de manera manual. Primero, debe encontrar la dirección base. Tiene 3 formas de encontrarla:
desde los mensajes de inicio de X11, por ejemplo:
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 (--) SVGA: Linear framebuffer at 0xD8000000
de /proc/pci (use la órden lspci -v):
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable)
de los mensajes del controlador del kernel mga_vid kernel (use dmesg):
mga_mem_base = d8000000
Después encuentre el tamaño de la memoria. Esto es muy fácil, convierta el tamaño de la memoria RAM de video a hexadecimal, o use esta tabla:
1 MB | 0x100000 |
2 MB | 0x200000 |
4 MB | 0x400000 |
8 MB | 0x800000 |
16 MB | 0x1000000 |
32 MB | 0x2000000 |
Ahora ya conoce la dirección base y el tamaño de la memoria, ¡vamos
a configurar los registros MTRR!
Por ejemplo, para la tarjeta Matrox de antes (base=0xd8000000
)
con 32MB ram (size=0x2000000
) ejecute:
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
No todas las CPUs soportan MTRRs. Por ejemplo K6-2's antiguos (alrededor de 266MHz, stepping 0) no soportan MTRR, pero stepping 12's lo soportan (cat /proc/cpuinfo para comprobarlo).