Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75099
  • 博文数量: 17
  • 博客积分: 1426
  • 博客等级: 上尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-03 11:13
文章分类

全部博文(17)

文章存档

2010年(1)

2007年(4)

2005年(12)

我的朋友

分类:

2005-10-03 11:20:48

昨天用mplayer放wmv出了问题,于是便去下了mplayer-docs。搞定了wmv的问题后,又接着看了一点,里面说,设定MTRR注册后,能“极大的提高性能”。

具体方法如下:
首先,使用lspci -v,查看显卡的信息。我的显卡如下:
02:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200 Ultra] (rev a1) (prog-if 00 [VGA])
Flags: bus master, 66Mhz, medium devsel, latency 248, IRQ 5
Memory at ec000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (32-bit, prefetchable) [size=128M]
[virtual] Expansion ROM at ed000000 [disabled] [size=128K]
Capabilities:
我的显卡是128M显存的,可以看到它的基地址为e0000000。
显存对应的大小如下:

  • 1MB 0x100000
  • 2MB 0x200000
  • 4MB 0x400000
  • 8MB 0x800000
  • 16MB 0x1000000
  • 32MB 0x2000000
  • 64MB 0x4000000
  • 128MB 0x8000000
查看一下mtrr: cat /proc/mtrr,得到:
reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
reg01: base=0xe8000000 (3712MB), size= 64MB: write-combining, count=1
也就是说,显存还没有注册进去,因此,使用root执行:
echo "base=0xe0000000 size=0x8000000 type=write-combining" >| /proc/mtrr
然后再查看/proc/mtrr,得到:
reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
reg01: base=0xe8000000 (3712MB), size= 64MB: write-combining, count=1
reg02: base=0xe0000000 (3584MB), size= 128MB: write-combining, count=1
只要把前面的echo语句放到/etc/rc.d/rc.local里面,就可以每次启动系统都自动注册了。当然,每个人的机器都不一样,只需要把基地址和显存大小用实际数值替换掉即可。不过比较老的CPU可能不支持mtrr,可以检查/proc/cpuinfo,看看flags那里有没有mtrr,当然,建内核的时候也要把MTRR选上的,具体可以参见内核源码的Documentation/mtrr.txt。

阅读(2388) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~