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@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 ()
triage@lists.fedoraproject.org