Re: MTRR setup failure on Fujitsu Lifebook S761

From: Tony Vroon
Date: Mon Jul 25 2011 - 06:39:32 EST


On 07/22/11 09:12, Tony Vroon wrote:
> The contents of /proc/mtrr are:
> reg00: base=0x0ffc00000 ( 4092MB), size= 4MB, count=1: write-protect
> reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
> reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
> reg03: base=0x0c0000000 ( 3072MB), size= 512MB, count=1: write-back
> reg04: base=0x0d0000000 ( 3328MB), size= 256MB, count=1: uncachable
> reg05: base=0x0cc000000 ( 3264MB), size= 64MB, count=1: uncachable
> reg06: base=0x0cb000000 ( 3248MB), size= 16MB, count=1: uncachable
> reg07: base=0x0cac00000 ( 3244MB), size= 4MB, count=1: uncachable
> reg08: base=0x100000000 ( 4096MB), size= 1024MB, count=1: write-back
> reg09: base=0x130000000 ( 4864MB), size= 256MB, count=1: uncachable

I believe this is closer to the optimum:
adrastea ~ # cat /proc/mtrr
reg00: base=0x0ffc00000 ( 4092MB), size= 4MB, count=1: write-protect
reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x0c0000000 ( 3072MB), size= 256MB, count=1: write-back
reg04: base=0x0d0000000 ( 3328MB), size= 256MB, count=1: write-combining
reg05: base=0x100000000 ( 4096MB), size= 1024MB, count=1: write-back
reg09: base=0x130000000 ( 4864MB), size= 256MB, count=1: uncachable

0x0d0000000 is the range triggering the warning before, it is the AGP
aperture for the Sandy Bridge graphics.

I used the following script to get there:
adrastea ~ # cat /usr/sbin/mtrr.sh
#!/bin/bash
echo "disable=3" >| /proc/mtrr
echo "disable=4" >| /proc/mtrr
echo "disable=5" >| /proc/mtrr
echo "disable=6" >| /proc/mtrr
echo "disable=7" >| /proc/mtrr
echo "disable=8" >| /proc/mtrr
echo "base=0xc0000000 size=0x10000000 type=write-back" >| /proc/mtrr
echo "base=0xd0000000 size=0x10000000 type=write-combining" >| /proc/mtrr
echo "base=0x100000000 size=0x40000000 type=write-back" >| /proc/mtrr

Two questions remain...
1) Why can't the MTRR sanitizer figure this one out? (Even on 3.0.0-03370-gb6844e8)
2) If the MTRR sanitizer will not be fixed, how can I override the above MTRRs on the kernel command line?

Regards,
--
Tony Vroon
UNIX systems administrator
London Internet Exchange Ltd, Trinity Court, Trinity Street,
Peterborough, PE1 1DA
Registered in England number 3137929
E-Mail: tony@xxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/