2004-10-05 21:50:50

by Markus Lidel

[permalink] [raw]
Subject: question about MTRR areas on x86_64

Hello,

i've got the following error message:

mtrr: type mismatch for fb000000,1000000 old: write-back new: write-combining
i2o: could not enable write combining MTRR

the output of /proc/mtrr is as follows:

reg00: base=0x00000000 ( 0MB), size=8192MB: write-back, count=1
reg01: base=0xe5000000 (3664MB), size= 16MB: uncachable, count=1
reg02: base=0xe6000000 (3680MB), size= 32MB: uncachable, count=1
reg03: base=0xe8000000 (3712MB), size= 128MB: uncachable, count=1
reg04: base=0xf0000000 (3840MB), size= 256MB: uncachable, count=1

Could it be because the machine has too much memory, or is there a bug in the I2O driver?

Thank you very much in advance.


Best regards,


Markus Lidel
------------------------------------------
Markus Lidel (Senior IT Consultant)

Shadow Connect GmbH
Carl-Reisch-Weg 12
D-86381 Krumbach
Germany

Phone: +49 82 82/99 51-0
Fax: +49 82 82/99 51-11

E-Mail: [email protected]
URL: http://www.shadowconnect.com


2004-10-05 22:15:50

by Andi Kleen

[permalink] [raw]
Subject: Re: question about MTRR areas on x86_64

Markus Lidel <[email protected]> writes:
>
> Could it be because the machine has too much memory, or is there a bug in the I2O driver?

The problem comes from the BIOS who set up reg00 to be overlapping
over other areas. The Linux MTRR driver cannot deal with overlapping
MTRRs, in fact it is sometimes impossible because it could run
out of registers or violate some of the MTRR restrictions.

It's a long standing problem, eventual fix will be to get rid
of MTRRs completely and only use PAT. But it needs a bit more work.

-Andi

2004-10-14 10:52:46

by Eric W. Biederman

[permalink] [raw]
Subject: Re: question about MTRR areas on x86_64

Andi Kleen <[email protected]> writes:

> Markus Lidel <[email protected]> writes:
> >
> > Could it be because the machine has too much memory, or is there a bug in the
> I2O driver?
>
>
> The problem comes from the BIOS who set up reg00 to be overlapping
> over other areas. The Linux MTRR driver cannot deal with overlapping
> MTRRs, in fact it is sometimes impossible because it could run
> out of registers or violate some of the MTRR restrictions.

And the BIOS is using overlapping MTRRs because otherwise it would run
out.

> It's a long standing problem, eventual fix will be to get rid
> of MTRRs completely and only use PAT. But it needs a bit more work.


That would be nice to see.

Eric

2004-10-14 14:00:40

by Markus Lidel

[permalink] [raw]
Subject: Re: question about MTRR areas on x86_64

Hello,

Eric W. Biederman wrote:
> Andi Kleen <[email protected]> writes:
>>Markus Lidel <[email protected]> writes:
>>>Could it be because the machine has too much memory, or is there a bug in the
>>I2O driver?
>>
>>The problem comes from the BIOS who set up reg00 to be overlapping
>>over other areas. The Linux MTRR driver cannot deal with overlapping
>>MTRRs, in fact it is sometimes impossible because it could run
>>out of registers or violate some of the MTRR restrictions.

Sorry, for not answering, but somehow i never received your e-mail. :-(

> And the BIOS is using overlapping MTRRs because otherwise it would run
> out.

Okay...

>>It's a long standing problem, eventual fix will be to get rid
>>of MTRRs completely and only use PAT. But it needs a bit more work.

I've seen there is already a patch around to add initial PAT support. So
i think it's only a question of time until it is included :-D If there is
something i could help with please let me know.

Thanks to both of you for helping.



Best regards,


Markus Lidel
------------------------------------------
Markus Lidel (Senior IT Consultant)

Shadow Connect GmbH
Carl-Reisch-Weg 12
D-86381 Krumbach
Germany

Phone: +49 82 82/99 51-0
Fax: +49 82 82/99 51-11

E-Mail: [email protected]
URL: http://www.shadowconnect.com