about mtrr

From: Volker Armin Hemmann
Date: Tue May 26 2009 - 16:01:24 EST


Hello,
this is an amd64 system. AMD X2 CPU, Am2+ motherboard with A770 chipset and SB
700 southbridge -A770Crossfire from Asrock. Latest bios

my /proc/mtrr always roughly looking like that:
reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0c0000000 ( 3072MB), size= 128MB, count=1: write-back
reg03: base=0x0c8000000 ( 3200MB), size= 64MB, count=1: write-back
reg04: base=0x0cc000000 ( 3264MB), size= 32MB, count=1: write-back
reg05: base=0x0ce000000 ( 3296MB), size= 16MB, count=1: write-back

now it looks like that (with ati driver loaded, without, just the last line is
missing):

cat /proc/mtrr
reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0c0000000 ( 3072MB), size= 128MB, count=1: write-back
reg03: base=0x0c8000000 ( 3200MB), size= 64MB, count=1: write-back
reg04: base=0x0cc000000 ( 3264MB), size= 32MB, count=1: write-back
reg05: base=0x0ce000000 ( 3296MB), size= 16MB, count=1: write-back
reg06: base=0x0d0000000 ( 3328MB), size= 256MB, count=1: write-combining

which was ok as long as I had 4gb of ram.

But I have a 6gb now - and with the additional 2gb performance took a hit.

I would like to know why roughly 2.5gb are not covered by mtrr's and is there
a way to force the kernel to cover the whole range without doing it manually?
I played with mtrr_spare_reg_nr= and MTRR cleanup support without any changes
at all.
2.6.27, 2.6.28, 2.6.29 - all three versions show the same mtrr.
Attached are dmesg and config.

Glück Auf,
Volker

Attachment: config.gz
Description: GNU Zip compressed data

Attachment: dmesg.log.gz
Description: GNU Zip compressed data