2008-08-29 15:33:00

by J.A. Magallón

[permalink] [raw]
Subject: Out of mtrrs

Hi all...

I'm using the xorg intel driver, and drm/X report it has no free mtrrs
in kernel to set up:

one:~# cat /proc/mtrr
reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1

dmesg:

[drm] Initialized i915 1.6.0 20060119 on minor 0
mtrr: no more MTRRs available

one:/var/log# grep Linear x.log
(--) intel(0): Linear framebuffer at 0x20000000

I think X tries to get a mtrr at 0x20000000, but kernel has no free one
to offer.

Does this have any solution ?

TIA

(Oh, this is 2.6.26.3, intel driver 2.4.2)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME,
943/940GML Express Integrated Graphics Controller (rev 03)

--
J.A. Magallon <jamagallon()ono!com> \ Software is
like sex:
\ It's better when
it's free
Mandriva Linux release 2009.0 (Cooker) for i586
Linux 2.6.25-jam13 (gcc 4.3.1 20080515 (GCC) #1 SMP



2008-08-29 16:17:29

by J.A. Magallón

[permalink] [raw]
Subject: Re: Out of mtrrs


On 2008.08.29, at 18:01, Arjan van de Ven wrote:

> On Fri, 29 Aug 2008 17:32:49 +0200
> ""J.A. Magall?n"" <[email protected]> wrote:
>
>> Hi all...
>>
>> I'm using the xorg intel driver, and drm/X report it has no free
>> mtrrs
>> in kernel to set up:
>>
>> one:~# cat /proc/mtrr
>> reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
>> reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
>> reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
>> reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
>> reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
>> reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
>> reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
>> reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1
>>

with disable_mtrr_trim, I get te same:

reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1

Is there any other option ?

cicely:/usr/share/doc/kernel-doc# grep mtrr kernel-par*
disable_mtrr_trim [X86, Intel and AMD only]

> did this work with older kernels?
> if so, you should disable the MTRR munging feature of newer kernels;
> it's not working well enough ;)

--
J.A. Magallon <jamagallon()ono!com> \ Software is
like sex:
\ It's better when
it's free
Mandriva Linux release 2009.0 (Cooker) for i586
Linux 2.6.25-jam13 (gcc 4.3.1 20080515 (GCC) #1 SMP


2008-08-29 17:37:27

by Yinghai Lu

[permalink] [raw]
Subject: Re: Out of mtrrs

On Fri, Aug 29, 2008 at 9:17 AM, "J.A. Magall?n" <[email protected]> wrote:
>
> On 2008.08.29, at 18:01, Arjan van de Ven wrote:
>
>> On Fri, 29 Aug 2008 17:32:49 +0200
>> ""J.A. Magall?n"" <[email protected]> wrote:
>>
>>> Hi all...
>>>
>>> I'm using the xorg intel driver, and drm/X report it has no free mtrrs
>>> in kernel to set up:
>>>
>>> one:~# cat /proc/mtrr
>>> reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
>>> reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
>>> reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
>>> reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
>>> reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
>>> reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
>>> reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
>>> reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1
>>>
>
> with disable_mtrr_trim, I get te same:
>
> reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
> reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
> reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
> reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
> reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
> reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
> reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
> reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1
>

the mtrr looks crazy from setting by BIOS...

32bit or 64bit?

please set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1

and boot with "debug" in boot command line...

and send out

dmesg -s 262144 > dmesg.txt

YH

2008-08-29 22:56:51

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: Out of mtrrs



>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of "J.A.
>Magall?n"
>Sent: Friday, August 29, 2008 8:33 AM
>To: Linux-Kernel
>Subject: Out of mtrrs
>
>Hi all...
>
>I'm using the xorg intel driver, and drm/X report it has no free mtrrs
>in kernel to set up:
>
>one:~# cat /proc/mtrr
>reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
>reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
>reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
>reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
>reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
>reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
>reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
>reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1
>
>dmesg:
>
>[drm] Initialized i915 1.6.0 20060119 on minor 0
>mtrr: no more MTRRs available
>
>one:/var/log# grep Linear x.log
>(--) intel(0): Linear framebuffer at 0x20000000
>
>I think X tries to get a mtrr at 0x20000000, but kernel has no free one
>to offer.
>
>Does this have any solution ?
>

One of the main motivations to add PAT support was this kind of errors.
With PAT aware X, this will no longer be a problem as X will map this
using PAT APIs.

Thanks,
Venki

2008-08-30 03:02:18

by Bill Davidsen

[permalink] [raw]
Subject: Re: Out of mtrrs

J.A. Magall?n wrote:
> Hi all...
>
> I'm using the xorg intel driver, and drm/X report it has no free mtrrs
> in kernel to set up:
>
> one:~# cat /proc/mtrr
> reg00: base=0xfffe0000 (4095MB), size= 128KB: write-protect, count=1
> reg01: base=0xfffc0000 (4095MB), size= 128KB: uncachable, count=1
> reg02: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1
> reg03: base=0x10000000 ( 256MB), size= 256MB: write-back, count=1
> reg04: base=0x1f800000 ( 504MB), size= 8MB: uncachable, count=1
> reg05: base=0x1f600000 ( 502MB), size= 2MB: uncachable, count=1
> reg06: base=0x1f500000 ( 501MB), size= 1MB: uncachable, count=1
> reg07: base=0x00000000 ( 0MB), size= 128KB: uncachable, count=1
>
> dmesg:
>
> [drm] Initialized i915 1.6.0 20060119 on minor 0
> mtrr: no more MTRRs available
>
> one:/var/log# grep Linear x.log
> (--) intel(0): Linear framebuffer at 0x20000000
>
> I think X tries to get a mtrr at 0x20000000, but kernel has no free one
> to offer.
>
> Does this have any solution ?

I don't, but there have been a LOT of mtrr issues recently. I see that
there were patches to -rc5 in that area. Many of my systems have RAM
they can't use, even in 32bit PAE mode, and I just have the feeling that
there is room for improvement here. For various reasons I would rather
run 32 bit on some machines, and to have 3.2GB RAM used in a 8 or 16GB
machine seems undesirable at the least, and with PAE and at least three
unused mtrr I assume that the problem is soluable, just not today. :-(

I will try a 2.6.27-rc5 build late next week, I have another box to build.
>
> TIA
>
> (Oh, this is 2.6.26.3, intel driver 2.4.2)
> 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME,
> 943/940GML Express Integrated Graphics Controller (rev 03)
>
> --
> J.A. Magallon <jamagallon()ono!com> \ Software is like
> sex:
> \ It's better when it's
> free
> Mandriva Linux release 2009.0 (Cooker) for i586
> Linux 2.6.25-jam13 (gcc 4.3.1 20080515 (GCC) #1 SMP
>
>
>


--
Bill Davidsen <[email protected]>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot