[Linux – Intel 965] Corrigiendo fallo de performance en intel 965

Desde el kernel 2.6.28 mi sistema ha estado presentando un fallo recurrente y una perdida razonable en el performance del video; era extraño ya que se suponía que tengo una intel 965 con 256 Mb de RAM para video y poseo 4Gb de RAM.

El error

dmesg | grep drm

[    3.425976] mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
[    3.425979] [drm] MTRR allocation failed.  Graphics performance may suffer.

Cuando ejecuto un cat /proc/mtrr:

reg00: base=0x000000000 (    0MB), size=32768MB, count=1: write-back
reg01: base=0x0e0000000 ( 3584MB), size=  512MB, count=1: uncachable
reg02: base=0x0ddc00000 ( 3548MB), size=    4MB, count=1: uncachable
reg03: base=0x0de000000 ( 3552MB), size=   32MB, count=1: uncachable
reg04: base=0x11c000000 ( 4544MB), size=   64MB, count=1: uncachable

Encontramos que la tarjeta de video no está logrando ningún buffer de RAM para write-combining golpeando notablemente el performance del video.

Corrección

Para corregir; debemos tener un kernel 2.6.30 o superior; en mi caso al tener Debian Squeeze tengo el 2.6.30-2-686; luego agregamos las siguientes opciones al arranque del kernel en el boot (grub):

enable_mtrr_cleanup mtrr_spare_reg_nr=1

En mi caso; la línea del grub queda:

linux   /vmlinuz-2.6.30-2-686 root=UUID=b7d24754-7be4-407c-a998-2b538ffebbf4 ro quiet vga=791 splashy splashy=verbose preload enable_mtrr_cleanup mtrr_spare_reg_nr=1

Debemos modificar nuestra sección “Device” del archivo /etc/X11/xorg.conf las siguientes líneas:

Section "Device"
 Identifier      "Configured Video Device"
 Driver          "intel"
 BusID           "PCI:0:2:0"
 Option          "AllowGLXWithComposite" "true"
 Option          "XAANoOffscreenPixmaps" "true"
 Option          "AddARGBGLXVisuals"     "True"
 Option          "DRI"   "True"
 Option          "AccelMethod"   "EXA"
 Option          "EXAOptimizeMigration"          "true"
 Option          "MigrationHeuristic"            "greedy"
 Option          "Tiling"                        "true"
 Option          "NoDDC"
 Option          "BackingStore"  "True"
 Option          "MTRR" "on"
 Option          "UseFBDev" "false"
 Option          "LinearAlloc" "6144"
 Option          "MonitorLayout" "CRT,LFP"
 Option          "DevicePresence" "true"
 Option          "RenderAccel" "true"
 Option          "RandRRotation" "on"
EndSection

Recordando habilitar MTRR “on”; guardamos el archivo y reiniciamos el sistema.

Al reiniciar y detallar si la solución es correcta; vemos lo siguiente:

dmesg | grep drm

[   42.714883] [drm] Initialized drm 1.1.0 20060810
[   42.793528] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0

Si verificamos si la tarjeta de video ha logrado registrar un rango “write-combining”:

reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0bf700000 ( 3063MB), size=    1MB, count=1: uncachable
reg03: base=0x0bf800000 ( 3064MB), size=    8MB, count=1: uncachable
reg04: base=0x100000000 ( 4096MB), size= 1024MB, count=1: write-back
reg05: base=0x13c000000 ( 5056MB), size=   64MB, count=1: uncachable
reg06: base=0x0e0000000 ( 3584MB), size=  256MB, count=1: write-combining

Vemos que el último es un buffer write-combining de extactamente el tamaño asignado en BIOS a nuestra tarjeta intel 965.

No solo el error no se presenta, sino que ahora en GLX:

2144 frames in 5.0 seconds = 428.692 FPS

Previamente obtenía unos 350 FPS por lo que es una mejora de un 20%; además tomemos en cuenta que el error ya no se manifiesta.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 26 diciembre 2009 en Cultura Libre, Linux, PlanetaLinux, trucos de la abuela y etiquetado en , , , , . Guarda el enlace permanente. 2 comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: