Unix Technical Forum

Reading MTRRs

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 ...


Go Back   Unix Technical Forum > Unix Operating Systems > Slackware Linux Support

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-20-2008, 07:16 AM
Marcus Monserrate
 
Posts: n/a
Default Reading MTRRs

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 on the "using
ioctl()'s" part of mtrr.txt. But, maybe I don't need to?

I would appreciate any suggestions
Thank you very much

Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 02-20-2008, 07:16 AM
Marcus Monserrate
 
Posts: n/a
Default Re: Reading MTRRs

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

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 02-20-2008, 07:17 AM
LiNuCe
 
Posts: n/a
Default Re: Reading MTRRs

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 on the "using ioctl()'s" part of mtrr.txt. But, maybe I
> 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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 02-20-2008, 07:17 AM
Old Man
 
Posts: n/a
Default Re: Reading MTRRs

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 02-20-2008, 07:17 AM
Marcus Monserrate
 
Posts: n/a
Default Re: Reading MTRRs

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.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 02-20-2008, 07:17 AM
Marcus Monserrate
 
Posts: n/a
Default Re: Reading MTRRs

Old Man wrote:
>
> Shot in the dark - Do you have Option "No MTRR" set in your xorg.conf?
>

Thank you, Old Man. Just yesterday I had put in Option "MTRR"
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 09:33 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com