Plasma sucking up huge cpu seems to be a repainting problem

Shawn Starr shawn.starr at rogers.com
Thu Oct 2 08:27:40 CEST 2008


gdb break:

Seems something is causing too many repaints when you *just* have a Panel, no 
widgets, if you remove the panel the CPU drops to nothing..

Program received signal SIGINT, Interrupt.
0x00132416 in __kernel_vsyscall ()        
(gdb) bt                                  
#0  0x00132416 in __kernel_vsyscall ()    
#1  0x01be1f08 in do_writev () at ../sysdeps/unix/sysv/linux/writev.c:46
#2  __libc_writev (fd=6, vector=0xbfffd13c, count=1) at 
../sysdeps/unix/sysv/linux/writev.c:65
#3  0x031fa35e in ?? () from /usr/lib/libxcb.so.1                                             
#4  0x031fa98e in ?? () from /usr/lib/libxcb.so.1                                             
#5  0x031faab9 in ?? () from /usr/lib/libxcb.so.1                                             
#6  0x031fbbd6 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1                             
#7  0x01a36e99 in _XReply () from /usr/lib/libX11.so.6                                        
#8  0x01a130d9 in XGetImage () from /usr/lib/libX11.so.6                                      
#9  0x014105de in QX11PixmapData::toImage (this=0x8142168) at 
image/qpixmap_x11.cpp:1407      
#10 0x01404c3b in QPixmap::toImage (this=0x8122d78) at image/qpixmap.cpp:429                  
#11 0x0142ca83 in QTexturedBrushData::image (this=<value optimized out>) at 
painting/qbrush.cpp:159
#12 QBrush::textureImage (this=0x815aaf8) at painting/qbrush.cpp:729                               
#13 0x014ba087 in QSpanData::setup (this=0x815ac18, brush=@0x815aaf8, 
alpha=256)                   
    at painting/qpaintengine_raster.cpp:5234                                                       
#14 0x014bb7fe in QRasterPaintEngine::updateState (this=0x8142450, 
state=@0x813f9e8)               
    at painting/qpaintengine_raster.cpp:1347                                                       
#15 0x0144282b in QPainterPrivate::updateStateImpl (this=0x81420c8, 
newState=0x813f9e8)            
    at painting/qpainter.cpp:878                                                                   
#16 0x014428f8 in QPainterPrivate::updateState (this=0x81420c8, 
newState=0x813f9e8) at painting/qpainter.cpp:906
#17 0x0144c041 in QPainter::drawPath (this=0xbfffdc98, path=@0xbfffdd24) at 
painting/qpainter.cpp:2822          
#18 0x01447259 in QPainterPrivate::draw_helper (this=0x8182820, 
originalPath=@0xbfffdd24,                       
    op=<value optimized out>) at painting/qpainter.cpp:358                                                      
#19 0x01449722 in QPainter::drawRects (this=0xbfffe120, rects=0xbfffde30, 
rectCount=1)                          
    at painting/qpainter.cpp:2955                                                                               
#20 0x0144b61b in QPainter::drawRect () at 
../../include/QtGui/../../src/gui/painting/qpainter.h:576            
#21 QPainter::drawPixmap (this=0xbfffe120, r=@0xbfffdf20, pm=@0xbfffdf98, 
sr=@0xbfffdf00)                       
    at painting/qpainter.cpp:4634                                                                               
#22 0x01dd585d in QPainter::drawPixmap () from 
/usr/local/kde4/lib/kde4/plugins/styles/oxygen.so                
#23 0x01dd3604 in OxygenHelper::renderWindowBackground () from 
/usr/local/kde4/lib/kde4/plugins/styles/oxygen.so
#24 0x01de3eff in OxygenStyle::eventFilter () from 
/usr/local/kde4/lib/kde4/plugins/styles/oxygen.so            
#25 0x0235c23a in QCoreApplicationPrivate::sendThroughObjectEventFilters 
(this=0x807a5b8, receiver=0x81541f0,   
    event=0xbfffe6ec) at kernel/qcoreapplication.cpp:694                                                        
#26 0x0135138a in QApplicationPrivate::notify_helper (this=0x807a5b8, 
receiver=0x81541f0, e=0xbfffe6ec)         
    at kernel/qapplication.cpp:3799                                                                             
#27 0x0135855a in QApplication::notify (this=0x805cb80, receiver=0x81541f0, 
e=0xbfffe6ec)                       
    at kernel/qapplication.cpp:3768                                                                             
---Type <return> to continue, or q <return> to quit---                                                          
#28 0x00e0ee25 in KApplication::notify () from 
/usr/local/kde4/lib/libkdeui.so.5                                
#29 0x0235d031 in QCoreApplication::notifyInternal (this=0x805cb80, 
receiver=0x81541f0, event=0xbfffe6ec)       
    at kernel/qcoreapplication.cpp:583                                                                          
#30 0x013aa34e in QCoreApplication::sendSpontaneousEvent (event=<value 
optimized out>, receiver=0x81541f0)      
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212                                     
#31 qt_sendSpontaneousEvent (receiver=0x81541f0, event=0x1) at 
kernel/qapplication_x11.cpp:4588                 
#32 0x013a04f0 in QWidgetPrivate::drawWidget (this=0x819ec30, pdev=0x818142c, 
rgn=@0xbfffe8a4,                  
    offset=@0x81813f4, flags=<value optimized out>, sharedPainter=0x811d278) 
at kernel/qwidget.cpp:4636
#33 0x014f3eec in QWidgetBackingStore::cleanRegion (this=0x81813e8, 
rgn=@0xbfffe8f8, widget=0x81541f0,
    recursiveCopyToScreen=true) at painting/qbackingstore.cpp:1034
#34 0x014f4392 in qt_syncBackingStore (widget=0x81541f0) at 
painting/qbackingstore.cpp:313
#35 0x013a3daf in QWidget::event (this=0x81541f0, event=0x81256c0) at 
kernel/qwidget.cpp:7447
#36 0x01691273 in QFrame::event (this=0x81541f0, e=0x81256c0) at 
widgets/qframe.cpp:651
#37 0x0171be1d in QAbstractScrollArea::event (this=0x81541f0, e=0x81256c0) at 
widgets/qabstractscrollarea.cpp:899
#38 0x0187f1a4 in QGraphicsView::event (this=0x81541f0, event=0x81256c0) at 
graphicsview/qgraphicsview.cpp:2276
#39 0x0015e914 in PanelView::event () from 
/usr/local/kde4/lib/libkdeinit4_plasma.so
#40 0x013513ac in QApplicationPrivate::notify_helper (this=0x807a5b8, 
receiver=0x81541f0, e=0x81256c0)
    at kernel/qapplication.cpp:3803
#41 0x0135855a in QApplication::notify (this=0x805cb80, receiver=0x81541f0, 
e=0x81256c0)
    at kernel/qapplication.cpp:3768
#42 0x00e0ee25 in KApplication::notify () from 
/usr/local/kde4/lib/libkdeui.so.5
#43 0x0235d031 in QCoreApplication::notifyInternal (this=0x805cb80, 
receiver=0x81541f0, event=0x81256c0)
    at kernel/qcoreapplication.cpp:583
#44 0x0235d983 in QCoreApplication::sendEvent () at 
kernel/qcoreapplication.h:209
#45 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, 
data=0x804a6d8)
    at kernel/qcoreapplication.cpp:1195
#46 0x0235db1d in QCoreApplication::sendPostedEvents (receiver=0x0, 
event_type=0)
    at kernel/qcoreapplication.cpp:1091
#47 0x02383aff in QCoreApplication::sendPostedEvents () at 
kernel/qcoreapplication.h:214
#48 postEventSourceDispatch (s=0x807c700) at 
kernel/qeventdispatcher_glib.cpp:205
#49 0x02041218 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#50 0x020448c3 in ?? () from /lib/libglib-2.0.so.0
#51 0x02044a81 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#52 0x02383758 in QEventDispatcherGlib::processEvents (this=0x805cf88, 
flags={i = 4})
    at kernel/qeventdispatcher_glib.cpp:319
#53 0x013dc085 in QGuiEventDispatcherGlib::processEvents (this=0x805cf88, 
flags={i = 4})
    at kernel/qguieventdispatcher_glib.cpp:198
---Type <return> to continue, or q <return> to quit---
#54 0x0235b79a in QEventLoop::processEvents (this=0xbffff020, flags={i = 4}) 
at kernel/qeventloop.cpp:143
#55 0x0235b95a in QEventLoop::exec (this=0xbffff020, flags={i = 0}) at 
kernel/qeventloop.cpp:190
#56 0x0235dbdd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#57 0x01351227 in QApplication::exec () at kernel/qapplication.cpp:3331
#58 0x00157895 in kdemain () from /usr/local/kde4/lib/libkdeinit4_plasma.so
#59 0x08048806 in main ()




More information about the Plasma-devel mailing list