This is a discussion on Reading MTRRs within the Slackware Linux Support forums, part of the Unix Operating Systems category; --> In order for me to tune up xine's Performance, xine-check revels: [ hint ] you have MTRR support but ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| In order for me to tune up xine's Performance, xine-check revels: [ hint ] you have MTRR support but it's unused. It seems like your X server didn't set any MTRR ranges for the graphics card. Maybe upgrading your X server helps... You don't have a PCI graphics card, do you? AFAIK, MTRR only helps with AGP cards. press <enter> to continue... AFAIK, that is what I have: GeFORCE FX 52OO AGP - 128MB DDR. SYSTEM DETAILS BELOW! /usr/src/linux-2.4.29/Documentation/mtrr.txt This file indicates that if I run: cat /proc/mtrr the result should be: (mtrr.txt is over my head!!!) % cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 reg01: base=0x08000000 ( 128MB), size= 64MB: write-back, count=1 But this is what I get: $ cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1 I don't have a reg01: line. And here's what I do have: cat /var/log/Xorg.0.log | grep Linear (--) NVIDIA(0): Linear framebuffer at 0xD8000000 cat /var/log/Xorg.0.log | grep VideoRAM (--) NVIDIA(0): VideoRAM: 131072 kBytes So do I have what I need to put this all together? And, if so, just how is that done? It sounds like some math conversion is need, but using the handy KCalc all I get is: 131072 = 20000 in hex. I'm think that maybe; a sysctl.conf is needed? And I can't make heads or tail ioctl()'s" part of mtrr.txt. But, maybe I don't need to? I would appreciate any suggestions Thank you very much Marcus |
| |||
| I forgot to include this stuff # lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev 42) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C596 ISA [Mobile South] (rev 11) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C/VT8235 PIPC Bus Master IDE (rev 06) 00:07.2 USB Controller: VIA Technologies, Inc. VT6202 [USB 2.0 controller] (rev 05) 00:07.3 Host bridge: VIA Technologies, Inc. VT82C596 Power Management (rev 20) 00:09.0 USB Controller: NEC Corporation USB (rev 43) 00:09.1 USB Controller: NEC Corporation USB (rev 43) 00:09.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 00:0b.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a) 00:0b.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 0a) 00:0c.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller 01:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1) # free total used free shared buffers cached Mem: 515516 447560 67956 0 85412 226056 -/+ buffers/cache: 136092 379424 Swap: 136040 0 136040 |
| |||
| Thu, 05 May 2005 17:52:39 -0400 - Marcus Monserrate <marcusm7@comcast.net> : > /usr/src/linux-2.4.29/Documentation/mtrr.txt This file indicates > that if I run: cat /proc/mtrr the result should be: (mtrr.txt is > over my head!!!) > > % cat /proc/mtrr > reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 > reg01: base=0x08000000 ( 128MB), size= 64MB: write-back, count=1 This is just an example to show you what this "file" should look like, it does not mean you should have the same values. > But this is what I get: > > $ cat /proc/mtrr > reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1 Here is what I get for the same graphic card : linuce@piteplop $ cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0x10000000 ( 256MB), size= 128MB: write-back, count=1 reg02: base=0x18000000 ( 384MB), size= 64MB: write-back, count=1 reg03: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1 reg07: base=0xe4000000 (3648MB), size= 64MB: write-combining, count=1 > I don't have a reg01: line. And here's what I do have: I have reg07 but I didn't have reg04, reg05 and reg06 > cat /var/log/Xorg.0.log | grep Linear > (--) NVIDIA(0): Linear framebuffer at 0xD8000000 linuce@piteplop $ grep Linear /var/log/Xorg.0.log (--) NV(0): Linear framebuffer at 0xD8000000 > cat /var/log/Xorg.0.log | grep VideoRAM > (--) NVIDIA(0): VideoRAM: 131072 kBytes linuce@piteplop $ grep VideoRam /var/log/Xorg.0.log (--) NV(0): VideoRAM: 131072 kBytes > So do I have what I need to put this all together? And, if so, just > how is that done? It sounds like some math conversion is need, but > using the handy KCalc all I get is: 131072 = 20000 in hex. I'm > think that maybe; a sysctl.conf is needed? And I can't make heads > or tail > don't need to? As you can see, I have 131072Kb of RAM with a linear framebuffer address starting at 0xD8000000. So I should use these values as reported by the X server (and as recommended by mtrr.txt) to configure MTRR. However, if you look at my /proc/mtrr, it already contains the "right" line (reg03). Your does not, so you should add it. From what we can read in the mtrr.txt file, you should use a command line like the following one : echo base=<Base> size=<Size> type=write-combining >| /proc/mtrr In your case, you have Base=0xD8000000 (as reported by "grep Linear Xorg.log") and Size=0x20000 (as reported by "grep VideoRAM Xorg.log"). So, you shoud probably run the following command if you follow what is explained in mtrr.txt : echo base=0xD8000000 size=0x20000 type=write-combining >| /proc/mtrr If you are unsure or if don't understand how I have built this command line, please do NOT run it. If you run it, there is even no guaranty it will work, you are on your own, etc. -- LiNuCe |
| |||
| Marcus Monserrate wrote: > [ hint ] you have MTRR support but it's unused. > It seems like your X server didn't set any MTRR ranges for the > graphics card. Maybe upgrading your X server helps... > You don't have a PCI graphics card, do you? AFAIK, MTRR only > helps with AGP cards. > press <enter> to continue... > Shot in the dark - Do you have Option "No MTRR" set in your xorg.conf? -- Old Man |
| |||
| LiNuCe wrote: > As you can see, I have 131072Kb of RAM with a linear framebuffer > address starting at 0xD8000000. So I should use these values as > reported by the X server (and as recommended by mtrr.txt) to configure > MTRR. However, if you look at my /proc/mtrr, it already contains the > "right" line (reg03). Your does not, so you should add it. From what > we can read in the mtrr.txt file, you should use a command line like > the following one : > > echo base=<Base> size=<Size> type=write-combining >| /proc/mtrr > > In your case, you have Base=0xD8000000 (as reported by "grep Linear > Xorg.log") and Size=0x20000 (as reported by "grep VideoRAM Xorg.log"). > So, you shoud probably run the following command if you follow what is > explained in mtrr.txt : > > echo base=0xD8000000 size=0x20000 type=write-combining >| /proc/mtrr > > If you are unsure or if don't understand how I have built this command > line, please do NOT run it. If you run it, there is even no guaranty > it will work, you are on your own, etc. > Thanks you so mush, LiNuCe. This is what I used: echo "base=0xD8000000 size=0x200000 type=write-combining" >| /proc/mtrr And now: cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1 reg01: base=0xd8000000 (3456MB), size= 2MB: write-combining, count=1 $ xine-check [ good ] you have MTRR support and there are some ranges set. Now I need to see how I can get the right range set and then create type=uncachable region. So I don't have redo it after reboot. |