[Bug 242386] Xorg burns CPU cycles, making desktop sluggish

bugzilla at redhat.com bugzilla at redhat.com
Fri Oct 17 19:26:29 UTC 2008


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


https://bugzilla.redhat.com/show_bug.cgi?id=242386





--- Comment #20 from Sami Farin <safari-ml-redhat-bugzilla-ptwabx4ymfxc4p4xju5ie7abi5wrsukshf2evzxn at u.safari.iki.fi>  2008-10-17 15:26:23 EDT ---
1.5.2 is not that much better.
Changing tab in firefox 3 needs 2 s cpu time, of which >90% of CPU time is
spent in libexa.so functions exaOffscreenAlloc and exaOffscreenFree.

Because of the nature of the bug, it may be possible to alleviate the problem
by restarting X and all the apps every day or so...
But saner options are called for.

In exaOffscreenFree, O(N) algo:
        for (prev = pExaScr->info->offScreenAreas; prev; prev = prev->next)
            if (prev->next == area)
                break;

In exaOffscreenAlloc, O(N) algo:
        /* skip allocated areas */
        if (area->state != ExaOffscreenAvail)
            continue;


profile is not that interesting, each of these two functions burning 34% of the
CPU, but gstack says:

#0  0x0000003000cdcb22 in select () from /lib64/libc.so.6
#1  0x0000003005808ac0 in _xcb_conn_wait () from /usr/lib64/libxcb.so.1
#2  0x0000003005809159 in _xcb_out_send () from /usr/lib64/libxcb.so.1
#3  0x0000003005809710 in xcb_send_request () from /usr/lib64/libxcb.so.1
#4  0x0000003002c4c6a1 in _XPutXCBBuffer () from /usr/lib64/libX11.so.6
#5  0x0000003002c4c9ed in _XCBUnlockDisplay () from /usr/lib64/libX11.so.6
#6  0x00000030080060ae in XRenderCompositeTrapezoids () from
/usr/lib64/libXrender.so.1
#7  0x000000300a2433d2 in _cairo_xlib_surface_composite_trapezoids () from
/usr/lib64/libcairo.so.2
#8  0x000000300a22a4a4 in _cairo_surface_composite_trapezoids () from
/usr/lib64/libcairo.so.2
#9  0x000000300a22d9f1 in _composite_traps_draw_func () from
/usr/lib64/libcairo.so.2
#10 0x000000300a22cbca in _clip_and_composite () from /usr/lib64/libcairo.so.2
#11 0x000000300a22d54b in _clip_and_composite_trapezoids () from
/usr/lib64/libcairo.so.2
#12 0x000000300a22db96 in _cairo_surface_fallback_stroke () from
/usr/lib64/libcairo.so.2
#13 0x000000300a22a88b in _cairo_surface_stroke () from
/usr/lib64/libcairo.so.2
#14 0x000000300a213c78 in _cairo_gstate_stroke () from /usr/lib64/libcairo.so.2
#15 0x000000300a20e930 in cairo_stroke_preserve () from
/usr/lib64/libcairo.so.2
#16 0x000000300a20e961 in cairo_stroke () from /usr/lib64/libcairo.so.2
#17 0x00007f49ad4fc5ca in ?? () from
/usr/lib64/gtk-2.0/2.10.0/engines/libnodoka.so
#18 0x00007f49ad4f359d in gdk_rectangle_intersect () from
/usr/lib64/gtk-2.0/2.10.0/engines/libnodoka.so
#19 0x00007f49b1e2d699 in moz_gtk_entry_paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#20 0x00007f49b1e2f93b in moz_gtk_widget_paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#21 0x00007f49b1e54e41 in ThemeRenderer::NativeDraw () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#22 0x00007f49b1f9500f in NativeRendering () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#23 0x00007f49b1f83ed8 in _draw_with_xlib_direct () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#24 0x00007f49b1f841fa in cairo_draw_with_xlib () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#25 0x00007f49b1f94dde in gfxXlibNativeRenderer::Draw () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#26 0x00007f49b1e56bbb in nsNativeThemeGTK::DrawWidgetBackground () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#27 0x00007f49b17832b7 in nsCSSRendering::PaintBackgroundWithSC () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#28 0x00007f49b1784298 in nsCSSRendering::PaintBackground () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#29 0x00007f49b178cbd0 in nsDisplayBackground::Paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#30 0x00007f49b178ce42 in nsDisplayList::Paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#31 0x00007f49b178ceec in nsDisplayClip::Paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#32 0x00007f49b178ce42 in nsDisplayList::Paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#33 0x00007f49b179dff1 in nsLayoutUtils::PaintFrame () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#34 0x00007f49b17a539d in PresShell::Paint () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#35 0x00007f49b1a85682 in nsViewManager::RenderViews () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#36 0x00007f49b1a859cf in nsViewManager::Refresh () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#37 0x00007f49b1a86b02 in nsViewManager::DispatchEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#38 0x00007f49b1a7fe62 in HandleEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#39 0x00007f49b1e40941 in nsCommonWidget::DispatchEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#40 0x00007f49b1e39114 in nsWindow::OnExposeEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#41 0x00007f49b1e396e2 in expose_event_cb () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#42 0x0000003009d2a1c0 in _gtk_marshal_BOOLEAN__BOXED () from
/usr/lib64/libgtk-x11-2.0.so.0
#43 0x000000300f80b7ab in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#44 0x000000300f821a28 in signal_emit_unlocked_R () from
/lib64/libgobject-2.0.so.0
#45 0x000000300f822fe3 in g_signal_emit_valist () from
/lib64/libgobject-2.0.so.0
#46 0x000000300f8236c4 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#47 0x0000003009e2d4be in gtk_widget_event_internal () from
/usr/lib64/libgtk-x11-2.0.so.0
#48 0x0000003009d240b2 in gtk_main_do_event () from
/usr/lib64/libgtk-x11-2.0.so.0
#49 0x000000300bc36dcc in gdk_window_process_updates_internal () from
/usr/lib64/libgdk-x11-2.0.so.0
#50 0x000000300bc373b9 in gdk_window_process_all_updates () from
/usr/lib64/libgdk-x11-2.0.so.0
#51 0x000000300bc373d9 in gdk_window_update_idle () from
/usr/lib64/libgdk-x11-2.0.so.0
#52 0x000000300bc1b5ec in gdk_threads_dispatch () from
/usr/lib64/libgdk-x11-2.0.so.0
#53 0x000000300d437b43 in g_main_context_dispatch () from
/lib64/libglib-2.0.so.0
#54 0x000000300d43b37d in g_main_context_iterate () from
/lib64/libglib-2.0.so.0
#55 0x000000300d43b52c in g_main_context_iteration () from
/lib64/libglib-2.0.so.0
#56 0x00007f49b1e56fbb in nsBaseAppShell::DoProcessNextNativeEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#57 0x00007f49b1e5721f in nsBaseAppShell::OnProcessNextEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#58 0x00007f49b1f4aabd in nsThread::ProcessNextEvent () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#59 0x00007f49b1f10dec in NS_ProcessNextEvent_P () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#60 0x00007f49b1e5732d in nsBaseAppShell::Run () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#61 0x00007f49b1cf2bfe in nsAppStartup::Run () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#62 0x00007f49b15d991f in XRE_main () from
/usr/lib64/firefox-3.0.3pre/libxul.so
#63 0x0000000000400e80 in main ()

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.




More information about the fedora-triage-list mailing list