Navigation :
Top/mtrrを使って高速描画
mtrrを使って高速描画
Linux2.2から MTRR(Memory Type Range Register)という機能がつきました。 この機能を使うには、カーネルがMTRR=ONで構築されている必要があります。 さらに、CPU自体がMTRRをサポートしている必要があります。
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 1 model name : AMD-K7(tm) Processor stepping : 2 cpu MHz : 704.938 cache size : 512 KB fdiv_bug : no hlt_bug : no sep_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr 6 mce cx8 sep mtrr pge 14 cmov fcmov 22 mmx 30 3dnow bogomips : 1405.75 ^^^^
設定方法は、まずX起動時のログをとって、それにあわせて設定値を決めます。
$ startx >& log $ less log XFree86 Version 3.3.6 / X Window System (略) (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xe4000000, 0xef000000, MMIO @ 0xefefc000 (--) SVGA: Linear framebuffer at 0xE4000000 (略)
ビデオカードは Matrox G400 16MBですが、これはE4000000番地から16MBということになってるらしいです。 なので、これを使って
# echo "base=0xe4000000 size=0x1000000 type=write-combining" > /proc/mtrr # cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=1
と設定します。
設定解除
# echo "disable=1" > /proc/mtrr # cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1