Registered Member
|
I was getting an error in my dmesg about poor video performance:
[ 8.925288] mtrr: type mismatch for d0000000,10000000 old: write-back new: write-combining [ 8.925290] [drm] MTRR allocation failed. Graphics performance may suffer. My /proc/mtrr: reg00: base=0x000000000 ( 0MB), size=65536MB, count=1: write-back reg01: base=0x07d700000 ( 2007MB), size= 1MB, count=1: uncachable reg02: base=0x07d800000 ( 2008MB), size= 8MB, count=1: uncachable reg03: base=0x07e000000 ( 2016MB), size= 32MB, count=1: uncachable reg04: base=0x07d600000 ( 2006MB), size= 1MB, count=1: uncachable reg05: base=0x080000000 ( 2048MB), size= 2048MB, count=1: uncachable Searching around I found posts on editing /proc/mtrr. I created a script that I put in /etc/rcS.d/S02fix_mtrr to remove them and add the correct ones. At least now dmesg doesn't complain and I think I have better video performance. My /proc/mtrr now: reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back reg01: base=0x0d0000000 ( 3328MB), size= 256MB, count=1: write-combining The fix_mtrr script: #!/bin/sh # Fix wrong MTRR setting #Empty File echo -n "Fixing MTRR ... " for X in $(cat /proc/mtrr | cut -c 5 | sort -rn) do echo "disable=$X" >| /proc/mtrr done #Set Correct settings: #Possible Values: #0x08000000 = 128Mb #0x10000000 = 256Mb #0x40000000 = 1Gb #0x60000000 = 1.5Gb #0x80000000 = 2Gb # First Line : Main Memory ( my Case 2gb) # Second Line : Video Card Mem ( my case 256 mb) # don't edit base=.... !!! echo "base=0x0 size=0x80000000 type=write-back" >| /proc/mtrr #echo 'base=0x80000000 size=0x10000000 type=write-combining' >| /proc/mtrr echo "Done" I have seen a couple different explanations for the first echo "base=0x0 ..." in that it is your main memory and others show it as your video memory and to get the base= from lspci or the X log so I don't know for sure what it is supposed to be. My lspci -vvv for the video card. 00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller]) Subsystem: Dell OptiPlex 755 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- [disabled] Capabilities: [90] MSI: Mask- 64bit- Count=1/1 Enable+ Address: fee0300c Data: 4199 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Kernel driver in use: i915 00:02.1 Display controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02) Subsystem: Dell OptiPlex 755 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- <PERR- INTx- Latency: 0 Region 0: Memory at fea80000 (32-bit, non-prefetchable) [size=512K] Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- |
Administrator
|
Is this a tutorial / tip?
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Maybe a little of both. I forgot the question part of: "Does anyone knows exactly what the MTRR values should be?" Dang work distracting me while I post... =) |
Registered users: Bing [Bot], gfielding, Google [Bot], markhm, sethaaaa, Sogou [Bot], Yahoo [Bot]