Slow exaOffscreenAlloc ?
zdenek.kabelac at gmail.com
Mon Dec 8 15:40:04 PST 2008
2008/12/9 Eric Anholt <eric at anholt.net>:
> On Mon, 2008-12-08 at 12:32 +0100, Zdenek Kabelac wrote:
>> Recently I've noticed that scrolling in firefox is getting very very
>> slow on some pages - especially those with some static background on
>> the sides of pages. So I've started oprofile - and to my surprise the
>> most of the time has been spent in two Xorg libexa functions:
>> Of course I could be completely wrong in my interpretation of these
>> oprofile results - from the fast look into the exa/exa_offscreen.c
>> it seems like a major time is spent in some loop going through
>> possible quite large list of offScreenAreas?
>> I'm running the latest fedora rawhide xorg-x11-server-Xorg-1.5.3-5.fc10.x86_64
>> X.Org X Server 1.5.3
>> Release Date: 5 November 2008
>> and linus-git kernel tree 2.6.28-rc7
>> Any ideas, solution ?
> My suspicion is that firefox is chewing through a lot more temporary
> pixmaps than it used to. I was just doing some profiling with UXA for
> scrolling in the slashdot comments section, and while things seem to be
> better than described by people using EXA, I'm still seeing unimpressive
> performance and indications that ff is using a lot of pixmaps (working
> set exceeding my 180MB of aperture space). We've got a few ideas to
> improve things for UXA performance still, so it may get better. It's
> already a win over EXA, since EXA's stuck with only 50MB of aperture
> On the other hand I've still got rendering issues with UXA, so you've
> been warned before you go playing with it.
>> CPU: Core 2, speed 2200 MHz (estimated)
>> Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a
>> unit mask of 0x00 (Unhalted core cycles) count 100000
>> samples % image name app name
>> symbol name
>> 35766 26.1526 libexa.so Xorg
>> 35766 100.000 libexa.so Xorg
>> exaOffscreenAlloc [self]
> This says to me that you're stuck allocating/freeing offscreen memory
> space to handle a working set that exceeds the size of your EXA
> offscreen space. UXA makes the pixmap offscreen space be unified with
> 3D and every other GPU activity.
So there is nothing which could improve the performace here - i.e.
better allocation logic instead of scanning possible very long list of
chunks to allocate/free pixmaps ?
Should I open bugzilla for firefox - so they could play more nicely here?
More information about the xorg