mtrr funnies
Bill Davidsen
davidsen at tmr.com
Wed Oct 8 12:51:34 UTC 2008
Nifty Fedora Mitch wrote:
> On Tue, Oct 07, 2008 at 10:59:02AM -0700, Wolfgang S. Rupprecht wrote:
>> I've got a motherboard with a fairly new chipset (Asus M3A78T
>> w. AMD/ATI 790GX) and I'm seeing a funny MTRR setting. I have 8GB
>> memory and am running a 64-bit kernel, but I'm only seeing ~4GB
>> mentioned in the MTRR's. Is this a bug? Do I need to add the upper
>> 4+GB by hand?
>>
>> $ cat /proc/mtrr
>> reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
>> reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
>> reg02: base=0xc0000000 (3072MB), size= 256MB: write-back, count=1
>> reg03: base=0xd0000000 (3328MB), size= 256MB: write-combining, count=1
>>
>> It does seem like the kernel sees the whole memory, at least at times,
>> but it isn't clear if that high memory is being cached the right way.
>>
>> Oct 7 10:54:30 poblano kernel: Memory: 7678940k/8650752k available (2699k kernel code, 184672k reserved, 1485k data, 980k init)
>>
>
> What does /proc/meminfo report.
>
> If I understand MTRR registers the important point is that they do not
> conflict with mapping that the kernel or a device driver might require. In
> this case the memory above MTRR#03 has no restrictions so the kernel is
> able to setup the page tables any way it needs to.
>
> The kernel will not assign coherency atributes to a page that risks
> data corruption. If a region of memory has an existing MTRR mapping anything
> the kernel does must be correct from a coherency point of view.
>
> Just curious, what device is mapped at 3.3GB? Is it a graphics card, which one?
> Write-combining is an interesting mapping... the driver must manage
> coherency with care but the driver can gain a near ten fold speedup for some
> IO devices.
>
> For what it is worth WindoZ uses per page atributes (PAT) and can ignore MTRR mapping
> once booted. Thus many system BIOS setup IO regions too conservativly
> which causes Linux IO to suffer. The kernel will respect MTRR mappings as it
> should...
>
The 2.6.27 kernel should be able to handle that. I built 2.6.27-rc7-git5 (or so)
with PAT enabled. However, I'm having problems with networking I didn't see in
the non-PAT kernel, that's under investigation at the moment.
--
Bill Davidsen <davidsen at tmr.com>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot
More information about the fedora-list
mailing list