Dell E6400 and mtrr issue

I have a Dell E6400 with the Intel intgrated graphics that I’m running openSUSE on. I was looking at the log messages when I boot to just make sure everything was looking good and I noticed the following message:

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

Looking around the net it appears this mtrr issue is pretty pervasise and I’d like to try to fix it on my laptop to see if it improves the performance of flash and other video which seems a bit sluggish. I found a good post on the topic here TikiRobot!, Mai Tais and Blinky Lights, Ahoy! » Fixing MTRRs on Linux but I’m a bit stumped as to how to apply his technique to my issue. When I run cat /proc/mtrr this is what I get:

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

I also ran lspi and got the following, I believe my video card falls in the reg01 range:

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller])
Subsystem: Dell Device [1028:0233]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 30
Region 0: Memory at f6c00000 (64-bit, non-prefetchable) [size=4]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256]
Region 4: I/O ports at ef98 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: <access denied>

00:02.1 Display controller [0380]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a43] (rev 07)
Subsystem: Dell Device [1028:0233]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at f6b00000 (64-bit, non-prefetchable) [size=1]
Capabilities: <access denied>

I tried setting reg01 to write-combined using the command below but I get Invalid Argument:

echo “base=0xe0000000 size=0x10000000 type=write-combining” > /proc/mtrr

Any suggestions on how I can fix this issue, I also tried setting the enable_mtrr_cleanup at boot in grub but this had no effect.

Thanks,

Gerald[/size][/size][/size][/size]

Answering my own question, if I change the mttr chuck and gran size to 256MB in the boot parameters I get write-combining for the video card but lose 200MB of RAM. In terms of performance there doesn’t appear to be any difference. Doing some more reading it appears that if the Intel graphics driver uses PAT and the video card memory is covered by some mtrr range then the type of mtrr doesn’t impact the performance. Thus I suspect this is just a spurious warning at this point.