Comment 124 for bug 314928

Bart Rose (jbrose3) wrote :

This bug seems to be back in Lucid Beta 1 on my Acer One 150.

With a stock boot my dmesg reports:

[ 14.725138] mtrr: no more MTRRs available
[ 14.725148] [drm] MTRR allocation failed. Graphics performance may suffer.

and a cat /proc/mtrr reports:

reg00: base=0x0fffe0000 ( 4095MB), size= 128KB, count=1: write-protect
reg01: base=0x0fffc0000 ( 4095MB), size= 128KB, count=1: uncachable
reg02: base=0x000000000 ( 0MB), size= 512MB, count=1: write-back
reg03: base=0x020000000 ( 512MB), size= 512MB, count=1: write-back
reg04: base=0x03f800000 ( 1016MB), size= 8MB, count=1: uncachable
reg05: base=0x03f600000 ( 1014MB), size= 2MB, count=1: uncachable
reg06: base=0x03f500000 ( 1013MB), size= 1MB, count=1: uncachable
reg07: base=0x000000000 ( 0MB), size= 128KB, count=1: uncachable

If I pass "enable_mtrr_cleanup mtrr_spare_reg_nr=1" to kernel and
echo "base=0x40000000 size=0x10000000 type=write-combining" > /proc/mtrr on boot, then my dmesg reports:

original variable MTRRs
[ 0.000000] reg 0, base: 4194176KB, range: 128KB, type WP
[ 0.000000] reg 1, base: 4194048KB, range: 128KB, type UC
[ 0.000000] reg 2, base: 0GB, range: 512MB, type WB
[ 0.000000] reg 3, base: 512MB, range: 512MB, type WB
[ 0.000000] reg 4, base: 1016MB, range: 8MB, type UC
[ 0.000000] reg 5, base: 1014MB, range: 2MB, type UC
[ 0.000000] reg 6, base: 1013MB, range: 1MB, type UC
[ 0.000000] reg 7, base: 0GB, range: 128KB, type UC
[ 0.000000] WARNING: BIOS bug: VAR MTRR 7 contains strange UC entry under 1M, check with your system vendor!
[ 0.000000] total RAM covered: 1013M
[ 0.000000] Found optimal setting for mtrr clean up
[ 0.000000] gran_size: 64K chunk_size: 16M num_reg: 4 lose cover RAM: 0G
[ 0.000000] New variable MTRRs
[ 0.000000] reg 0, base: 0GB, range: 1GB, type WB
[ 0.000000] reg 1, base: 1013MB, range: 1MB, type UC
[ 0.000000] reg 2, base: 1014MB, range: 2MB, type UC
[ 0.000000] reg 3, base: 1016MB, range: 8MB, type UC

and a cat /proc/mtrr reports:

reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x03f500000 ( 1013MB), size= 1MB, count=1: uncachable
reg02: base=0x03f600000 ( 1014MB), size= 2MB, count=1: uncachable
reg03: base=0x03f800000 ( 1016MB), size= 8MB, count=1: uncachable
reg04: base=0x040000000 ( 1024MB), size= 256MB, count=2: write-combining

This seems like a regression. Please let me know if you need more data.