compiz w/ i965 video and horrible cpu usage

Gregorio Gervasio, Jr. gtgj at pacbell.net
Tue Jun 10 07:59:29 UTC 2008


>>>>> John Priddy writes:

j> I recently just rebuilt a laptop with FC9 from FC8.  When I start compiz
j> I get a massive cpu of about 50 and 75%.  The culprit always is the Xorg
j> process.  Even simple scrolling text (ie. dmesg output) takes about 10
j> seconds to come back, whereas metacity is instant.  When compiz is
j> enabled, i also get digusting stats from glxgears as well, but only when
j> I am doing things like moving windows, etc.  On the other hand, glxgears
j> is solid with about 100fps when not using compiz.  I have tried
j> disabling various plugins via ccsm to the point of where it looks pretty
j> much identical to metacity, but the perf problem still persists.
j> Previously I didn't notice any issues with FC8 on the same laptop.  I
j> would be suprised if the hardware is the issue, its a dual core 2.2 w/
j> 4G ram.  I have even tried some 3rd party compiz repositories that are a
j> little bit more bleeding edge with the versions and i still have the
j> same issue.  

[...]

j> [jpriddy at boatanchor ~]$ dmesg | grep agp
j> Linux agpgart interface v0.103
j> agpgart: Detected an Intel 965GM Chipset.
j> agpgart: Detected 7676K stolen memory.
j> agpgart: AGP aperture is 256M @ 0xe0000000


        What does "cat /proc/mtrr" say?

        I had the same problem after I upgraded from F8 to F9 on my
Dell desktop (965Q chipset).  The problem appears to be related to
having >2GB memory and maybe having bad BIOS settings:

https://bugs.launchpad.net/linux/+bug/210780
https://bugs.freedesktop.org/show_bug.cgi?id=15360

I ended up using a workaround similar to the one described at the end
of that second web page, which involved redoing the MTRR settings:

original:
reg00: base=0x00000000 (   0MB), size=65536MB: write-back, count=1
reg01: base=0xbf800000 (3064MB), size=   8MB: uncachable, count=1
reg02: base=0xbf700000 (3063MB), size=   1MB: uncachable, count=1
reg03: base=0xc0000000 (3072MB), size= 1024MB: uncachable, count=1

new:
reg00: base=0x00000000 (   0MB), size=2048MB: write-back, count=1
reg01: base=0xbf800000 (3064MB), size=   8MB: uncachable, count=1
reg02: base=0xbf700000 (3063MB), size=   1MB: uncachable, count=1
reg03: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
reg04: base=0xc0000000 (3072MB), size= 256MB: write-combining, count=1
reg05: base=0xd0000000 (3328MB), size= 256MB: uncachable, count=1
reg06: base=0xe0000000 (3584MB), size= 512MB: uncachable, count=1
reg07: base=0x100000000 (4096MB), size=4096MB: write-back, count=1


The key is to set the framebuffer memory (reg03: 0xc0000000 in my
case) to be "write-combining" but this could not be done with the
original MTRR settings because reg00 overlapped reg03.

        The workaround breaks up the regions to avoid overlap.  I
split up reg00 into three (reg00, reg03, reg07) and I split up reg03
into another three (reg04, reg05, and reg06), with the framebuffer
(reg04) set to "write-combining".

        Unfortunately, I do not know why this only started failing in
F9.
-- 
Gregorio Gervasio, Jr.




More information about the fedora-list mailing list