Bug 156346 - High CPU usage when the system is idle
Summary: High CPU usage when the system is idle
Status: RESOLVED FIXED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: knotify (show other bugs)
Version: 4.0
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Olivier Goffart
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-21 22:46 UTC by Enrico
Modified: 2008-04-18 17:49 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enrico 2008-01-21 22:46:07 UTC
Version:           4.0 (using KDE 4.0.0)
Installed from:    Compiled From Sources
OS:                Linux

Knotify4 often generates a high CPU loads for no apparent reason. I haven't been able to connect this behaviour with the use of any particular application, and if I kill it nothing special happens. If it can help, below is a backtrace and the output of strace.

#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb6c7c817 in poll () from /lib/libc.so.6
#2  0xb6a679a5 in ?? () from /usr/lib/libglib-2.0.so.0
#3  0x0806dc50 in ?? ()
#4  0x00000005 in ?? ()
#5  0xb6a67f2e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#6  0xb7e4d982 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#7  0xb74cb735 in QGuiEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtGui.so.4
#8  0xb7e2ad58 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#9  0xb7e2ae6c in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#10 0xb7e2d76a in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#11 0xb7451767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#12 0x0804d160 in main (argc=-1222185144, argv=0x80eae80)
    at /home/kde-devel/kde/src/KDE/kdebase/runtime/knotify/main.cpp:68



clock_gettime(CLOCK_MONOTONIC, {39567, 452164253}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, -1) = 1
read(17, "\34\237\207\0\246\1\0\0\327\1\0\0\177\300[\2\0\21\t\0100H \10\260\24\345\277\330\24\345\277", 4096) = 32
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39567, 491365463}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, -1) = 1
read(17, "\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 128
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39568, 600680276}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, -1) = 1
read(17, "\34\237\207\0\246\1\0\0\253\1\0\0\355\304[\2\0\21\t\0100H \10\260\24\345\277\330\24\345\277", 4096) = 32
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39568, 622407670}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN, revents=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, -1) = 1
read(17, "\34\237\207\0\246\1\0\0\327\1\0\0\263\305[\2\0\21\t\0100H \10\260\24\345\277\330\24\345\277", 4096) = 32
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39568, 822961346}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN},{fd=10, events=POLLIN}, {fd=21, events=POLLIN, revents=POLLIN}], 5, -1) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(21, "l\4\1\1 \0\0\0\240\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 2048) = 381
read(21, 0x8187010, 2048)               = -1 EAGAIN (Resource temporarily unavailable)
write(14, "\0", 1)                      = 1
write(14, "\0", 1)                      = 1
clock_gettime(CLOCK_MONOTONIC, {39572, 855232704}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN, revents=POLLIN}, {fd=17,events=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, 0) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(13, "\0\0", 16)                    = 2
read(13, 0xbfb238d8, 16)                = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39572, 855473949}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN},{fd=10, events=POLLIN}, {fd=21, events=POLLIN, revents=POLLIN}], 5, -1) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(21, "l\4\1\1 \0\0\0\242\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 2048) = 192
read(21, 0x8187010, 2048)               = -1 EAGAIN (Resource temporarily unavailable)
write(14, "\0", 1)                      = 1
clock_gettime(CLOCK_MONOTONIC, {39578, 867912391}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN, revents=POLLIN}, {fd=17,events=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, 0) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(13, "\0", 16)                      = 1
read(13, 0xbfb238d8, 16)                = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39578, 868131914}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN}, {fd=17, events=POLLIN},{fd=10, events=POLLIN}, {fd=21, events=POLLIN, revents=POLLIN}], 5, -1) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(21, "l\4\1\1\35\0\0\0\243\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 2048) = 189
read(21, 0x8187010, 2048)               = -1 EAGAIN (Resource temporarily unavailable)
write(14, "\0", 1)                      = 1
clock_gettime(CLOCK_MONOTONIC, {39578, 877969968}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN}, {fd=13, events=POLLIN, revents=POLLIN}, {fd=17,events=POLLIN}, {fd=10, events=POLLIN}, {fd=21, events=POLLIN}], 5, 0) = 1
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
read(13, "\0", 16)                      = 1
read(13, 0xbfb238d8, 16)                = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {39578, 879055503}) = 0
read(17, 0x8071754, 4096)               = -1 EAGAIN (Resource temporarily unavailable)
Comment 1 Rolf Eike Beer 2008-01-22 08:20:52 UTC
Is this a duplicate of #156215?
Comment 2 Enrico 2008-01-22 08:56:22 UTC
It definitely seems related. I installed powertop, and when the CPU usage goes up, 
the number of wakeups due to knotify4 also goes up
 
  96.5% (10018.5)       <interrupt> : extra timer interrupt
   2.3% (238.7)          knotify4 : futex_wait (hrtimer_wakeup)
Comment 3 Olivier Goffart 2008-04-18 17:49:03 UTC
SVN commit 798568 by ogoffart:

Backport:  cache the KSharedConfigPtr, because parsing the config file is slow.
BUG: 156346


 M  +15 -2     knotifyconfig.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=798568