This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Fix MTRRs for improved video performance

Tags: None
(comma "," separated)
User avatar
Cader
Registered Member
Posts
40
Karma
0
OS
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-
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Is this a tutorial / tip?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
User avatar
Cader
Registered Member
Posts
40
Karma
0
OS
bcooksley wrote:Is this a tutorial / tip?


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... =)


Bookmarks



Who is online

Registered users: Bing [Bot], gfielding, Google [Bot], markhm, sethaaaa, Sogou [Bot], Yahoo [Bot]