Summary: | digikam wakes up 107 times per second (powertop) | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Stefan Fleiter <stefan.fleiter+kdebugs> |
Component: | Preview-Image | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | caulier.gilles, marcel.wiesweg, mike, stefan.fleiter+kdebugs |
Priority: | NOR | ||
Version: | 2.3.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 5.1.0 | |
Sentry Crash Report: | |||
Attachments: | strace of digikam running at pid 5292 |
Description
Stefan Fleiter
2010-03-22 23:15:42 UTC
Created attachment 42191 [details]
strace of digikam running at pid 5292
The pid of digikam changed when capturing the strace output because I had to restart digikam. New pid is 5292. #0 __poll (fds=0x7c534b0, nfds=20, timeout=0) at ../sysdeps/unix/sysv/linux/poll.c:69 #1 0x00007fffed27258c in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007fffed2728d0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007ffff17cdeb3 in QEventDispatcherGlib::processEvents (this=0xab6500, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #0 __poll (fds=0x7fffffffc920, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:69 #1 0x00007fffe8ca191a in ?? () from /usr/lib64/libxcb.so.1 #2 0x00007fffe8ca1e57 in ?? () from /usr/lib64/libxcb.so.1 #3 0x00007fffe8ca2115 in xcb_writev () from /usr/lib64/libxcb.so.1 #4 0x00007fffefb5203a in _XSend () from /usr/lib64/libX11.so.6 #5 0x00007fffefb52561 in _XEventsQueued () from /usr/lib64/libX11.so.6 #6 0x00007fffefb3b24b in XEventsQueued () from /usr/lib64/libX11.so.6 #7 0x00007ffff2727747 in x11EventSourcePrepare (s=0xaf3140, timeout=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:79 #8 0x00007fffed271fca in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0 #9 0x00007fffed2723a1 in ?? () from /usr/lib64/libglib-2.0.so.0 #10 0x00007fffed2728d0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #11 0x00007ffff17cdeb3 in QEventDispatcherGlib::processEvents (this=0xab6500, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #0 __poll (fds=0x7fffce984eb0, nfds=1, timeout=333) at ../sysdeps/unix/sysv/linux/poll.c:69 #1 0x00007fffce98bc4e in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.27/xineplug_ao_out_alsa.so #2 0x00007ffff142165d in start_thread (arg=<value optimized out>) at pthread_create.c:297 #3 0x00007ffff079f14d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #4 0x0000000000000000 in ?? () I got these three backtraces for poll. So it's either Glib, Xlibs or Xine/Alsa. Not too much we can do about this. Thanks for collecting these backtraces. From my other experiences with those bugs I assume that it might be xine which does this. If it indeed was xine wouldn't it help to lazy initialize it when it is needed for playing some sound? That way you could at least look at your photos without wasting energy. digiKam use KDE4 Phonon component to play video files, which use Xine as backend... Gilles Caulier Stefan, This entry still valid using digiKam 2.x ? Gilles Caulier Still valid under digikam 2.3 running under KDE 4.7 on debian experimental. powertop reports about 100 wakeups per second. Michael With Phonon configured with Gstreamer I have the following numers for wakeups/second: Before starting digikam: 80-90 With running digikam playing video: 260-270 With running digikam (after playing video): 120-130 (powertop can releate 20 Wakeups/second directly to digikam) Does powertop give us any clue (backtrace) from where the wakeups happen? AFAIK there is no possibility to get a backtrace from powertop. If you have any information how to get a backtrace please provide a pointer and I will try to provide it. Stefan, Run digiKam through gdb like this : http://www.digikam.org/drupal/contrib Note : Don't forget to install digiKam debug package to see backtrace with GDB Gilles Caulier You made some analysis with a strace output above, at the time still using Xine. Now we all use GStreamer. Can you still pinpoint which of select or poll is the culprit? Sometime callgrind logs can be (ab)used to find out which method calls which This entry still valid using digiKam 3.5.0 ? Gilles Caulier We need a fresh feedback about this entry... Gilles Caulier New digiKam 4.11.0 is available : https://www.digikam.org/node/740 Can you reproduce the problem with this release ? Gilles Caulier digiKam 4.12.0 is out : https://www.digikam.org/node/741 We need a fresh feedback using this release please... Thanks in advance. With digiKam 5.0.0, this problem is not reproducible. I close this file now. Don't hesitate to re-open if necessary. Gilles Caulier |