Re: 2.6.27 mtrr fixes do not work

Previous thread: [patch 0/5] Nano/Microsecond resolution for select() and poll() by Arjan van de Ven on Friday, August 29, 2008 - 8:05 am. (22 messages)

Next thread: GIT repositories with kernels > 2.4.1 and < 2.4.33 by Sergey Lapin on Friday, August 29, 2008 - 8:22 am. (3 messages)
From: Alexander Huemer
Date: Friday, August 29, 2008 - 8:09 am

yinghai,

there are quite good news! 2.6.27-rc5 brought some significant changes.
now i get this:

    # dmesg|grep -E &quot;(mtrr|uvesafb)&quot;
    Command line: root=/dev/sda1 video=uvesafb:1280x1024p-97,mtrr:2
    debug show_msr=1
    mtrr: your BIOS has set up an incorrect mask, fixing it up.
    Kernel command line: root=/dev/sda1
    video=uvesafb:1280x1024p-97,mtrr:2 debug show_msr=1
    uvesafb: XGI Technology, Inc., Volari Z9s, 1.09.10, OEM: XGI, VBE v3.0
    uvesafb: VBIOS/hardware supports DDC2 transfers
    uvesafb: monitor limits: vf = 97 Hz, hf = 129 kHz, clk = 364 MHz
    uvesafb: scrolling: redraw
    uvesafb: framebuffer at 0xd8000000, mapped to 0xffffc20002100000,
    using 10240k, total 32768k
    mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x800000
    # grep -E &quot;(^\(WW\)|^\(EE\)|^\(NI\)|^\(??\))&quot; /var/log/Xorg.0.log
    (WW) VESA(0): Failed to set up write-combining range
    (0xd8000000,0x2000000)
    # 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=0x100000000 (4096MB), size=1024MB: write-back, count=1
    reg03: base=0xd8000000 (3456MB), size=   8MB: write-back, count=1
    # grep MemTotal /proc/meminfo
    MemTotal:      4041064 kB
    #

which is much better than before, the total size of system memory is
correct.
the size of the graphics adapter memory is not correct.
and AFAIK the memory ranges should be:

ranges of system memory until the beginning of the graphics adapter
memory is reached (in my case 0x00000000 - 0xd8000000).
one range of the graphics adapter memory (0xd8000000, size 0x2000000).
with write combining.
remaining range of system memory (if applicable).

is this correct, yinghai?
so, something seems to be still wrong, X is still not satisfied, but i
think the kernel hackers are on the right way.

-- 
regards
alex
--

From: Yinghai Lu
Date: Friday, August 29, 2008 - 10:43 am

On Fri, Aug 29, 2008 at 8:09 AM, Alexander Huemer

it seems BIOS setup extra entry (8M) and that is conflict with that of
from graphical card.

can you send out
dmesg -s 262144 &gt; dmesg.txt
and
lspci -vvxxx
lspci -tv

so could find out if your graphical card is really allocated the memory area...

YH
--

From: Yinghai Lu
Date: Friday, August 29, 2008 - 2:39 pm

On Fri, Aug 29, 2008 at 12:10 PM, Alexander Huemer

pci 0000:00:1e.0:   IO window: 0x3000-0x3fff
pci 0000:00:1e.0:   MEM window: 0xdc300000-0xdc3fffff
pci 0000:00:1e.0:   PREFETCH window: 0x000000d8000000-0x000000dbffffff

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d9)
(prog-if 01 [Subtractive decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &gt;TAbort-
&lt;TAbort- &lt;MAbort- &gt;SERR- &lt;PERR- INTx-
	Latency: 0
	Bus: primary=00, secondary=20, subordinate=20, sec-latency=32
	I/O behind bridge: 00003000-00003fff
	Memory behind bridge: dc300000-dc3fffff
	Prefetchable memory behind bridge: 00000000d8000000-00000000dbffffff
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium &gt;TAbort-
&lt;TAbort- &lt;MAbort+ &lt;SERR- &lt;PERR-
	BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- &gt;Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Subsystem: Tyan Computer Device 5397
00: 86 80 4e 24 07 00 10 00 d9 01 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 20 20 20 30 30 80 22
20: 30 dc 30 dc 01 d8 f1 db 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 0c 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 0d 00 00 00 f1 10 97 53 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 80 0f 01 00 00 00 00 00

20:05.0 VGA compatible controller: XGI Technology Inc. (eXtreme
Graphics Innovation) Volari Z7 (prog-if 00 [VGA controller])
	Subsystem: XGI ...
From: Helge Hafting
Date: Saturday, August 30, 2008 - 4:11 am

Thank you for taking interest.
The files are attached.

The card is a nvidia card, but I use it in VESA mode because the
binary driver hangs the machine once or twice a week.

Helge Hafting
Previous thread: [patch 0/5] Nano/Microsecond resolution for select() and poll() by Arjan van de Ven on Friday, August 29, 2008 - 8:05 am. (22 messages)

Next thread: GIT repositories with kernels > 2.4.1 and < 2.4.33 by Sergey Lapin on Friday, August 29, 2008 - 8:22 am. (3 messages)