When animated widgets are added to the desktop then the plasmashell CPU usage increases dramatically. For example, the following widgets produce animated video: - Load Monitor - Network Monitor - Memory Status - Analog Clock (with second hand) According to the "top" program on my laptop, the plasmashell process uses less than 1% of the CPU without any animated widgets. However, when these four widgets are added to the desktop then the plasmashell CPU usage jumps immediately to 5% and goes up quickly from there until I restart plasmashell. As an example, if I let plasmashell run for about 4 hours without restarting then the plasmashell CPU utilization grows to around 50% of my 8 core Intel i7-4810MQ CPU @ 2.80 GHz. Reproducible: Always Steps to Reproduce: 1. Do a clean install of an OS with Plasma 5 such as OpenSUSE Leap 42.1 which I am using. 2. Open a Konsole session and run the "top" program. Note that the plasmashell CPU usage without any animated widgets is small (less than 1% on my laptop). 3. Add the following four animated widgets: Load Monitor, Analog Clock (with second hand enabled), Network Monitor and Memory Status. 4. Monitor the plasmashell's CPU usage with the "top" program. Note that, with these four animated widgets, plasmashell's CPU usage spikes to about 5 times the usage without these four widgets. Also, plasmashell's CPU usage will grow dramatically from there over time. After a few hours plasmashell's CPU usage will increase to 20% to 50% until plasmashell is restarted. Actual Results: CPU usage increases dramitically. Expected Results: CPU usage should either not increase or should increase modestly.
I can confirm this on Arch Linux.
Unfortunately I can confirm that KUbuntu is also affected ... I am running KUbuntu 15.10 with all available patched applied from ppa:kubuntu-ppa/backports. My plasmashell version is 5.5.3 and I am using System Load widget. Interestingly is that after several hours the widget becomes completely unresponsive (but I can launch the program it via K menu). I use my system for day to day work and I can confirm that after 8 hours the CPU usage is rather high (~30%) when no other programs are running (and you can feel that your computer has become sluggish). Killing and restarting plasmashell always cures it (I can provide a screen shot of "before" and "after"). It's VERY obvious. Last Friday I left the computer running over the weekend (my session running and locked with no screen saver, no programs running), and when I logged back in on Monday, the CPU usage was so high, couldn't do anything but restart it. My desktop has a 8 x Intel Core i7-4770 CPU @ 3.4 GHz CPU and 16G of RAM. So it's certainly not an old and slow machine. I hope you guys will now believe that this is indeed a KDE issue. Thank you.
(In reply to Quantum Five from comment #2) > Unfortunately I can confirm that KUbuntu is also affected ... > > I am running KUbuntu 15.10 with all available patched applied from > ppa:kubuntu-ppa/backports. My plasmashell version is 5.5.3 and I am using > System Load widget. Interestingly is that after several hours the widget > becomes completely unresponsive (but I can launch the program it via K menu). > > I use my system for day to day work and I can confirm that after 8 hours the > CPU usage is rather high (~30%) when no other programs are running (and you > can feel that your computer has become sluggish). Killing and restarting > plasmashell always cures it (I can provide a screen shot of "before" and > "after"). It's VERY obvious. > > Last Friday I left the computer running over the weekend (my session running > and locked with no screen saver, no programs running), and when I logged > back in on Monday, the CPU usage was so high, couldn't do anything but > restart it. > > My desktop has a 8 x Intel Core i7-4770 CPU @ 3.4 GHz CPU and 16G of RAM. So > it's certainly not an old and slow machine. > > I hope you guys will now believe that this is indeed a KDE issue. > > Thank you. Hi, I find a workaround on my Arch Linux system. Open NotificationIcon.qml file with root permission in /usr/share/plasma/plasmoids/org.kde.plasma.notifications/contents/ui Search for line "running: visible" in "PlasmaComponents.BusyIndicator" section and change it in "running: false" After that, plasmashell should use only 4-5% of CPU load.
Some improvement was added in latest frameworks speeding up a certain event filter. also I need some sort of logs Please can you run: kquitapp5 plasmashell valgrind --tool=callgrind --instr-atstart=no plasmashell wait till CPU usage is high then callgrind_control -i on *wait a bit* callgrind_control -i off then quit plasma and upload the relevant callgrind.something.out file.
*** This bug has been marked as a duplicate of bug 356479 ***
(In reply to David Edmundson from comment #4) > Some improvement was added in latest frameworks speeding up a certain event > filter. > > > > also I need some sort of logs > > Please can you run: > kquitapp5 plasmashell > valgrind --tool=callgrind --instr-atstart=no plasmashell > > wait till CPU usage is high then > > callgrind_control -i on > *wait a bit* > callgrind_control -i off > > then quit plasma and upload the relevant callgrind.something.out file. Have I to do this with "running: visible" in NotificationIcon.qml file? Ah, please, change status. This bug is not resolved.
without the change. also it is marked as being a duplicate of another bug which is tracking a practically identical discussion.
(In reply to David Edmundson from comment #7) > without the change. > > also it is marked as being a duplicate of another bug which is tracking a > practically identical discussion. OK, I'll do the log when I can. But this is the first time I try that. After quitting plasma, where can I find callgrind.something.out file? Same directory in which I executed Konsole?
Created attachment 97112 [details] Valgrind log Firts time I use valgrind. Don't know If I did the job well.
Created attachment 97113 [details] Valgrind log 2 Did another. With two network monitor and one CPU monitor, during reproduction of a YouTube video, plasmashell/valgring process at about 20 % CPU load.
Thank you for your help David ! I am currently running valgrind and I'll grab the logs in the evening or tomorrow morning (I might let it run overnight). Meanwhile, I have attached two screenshots of "before and after" killing and restarting plasmashell. So I used my computer all day yesterday and let it running overnight without any other programs running. This morning you can see the CPU constantly loaded at +30% even if no program is running in the background. Then you can see on the picture that CPU returns to normal once I kill and restart plasmashell.
Created attachment 97114 [details] plasmashell strain on the CPU with no other programs running The CPU load generated by plasmashell after ~16 hours of running.
Created attachment 97115 [details] CPU load goes back to normal after plasmashell restart Obvious difference ...There's seems to be a slight drop in the memory consumption too after plasmashell restart. About 200MB.
Created attachment 97121 [details] here is my callgrind file as requested Hope this helps.
Created attachment 97122 [details] plasmashell serious strains on the CPU after 8+ hours of work It is true that valgrind (and ONLY valgrind) was running on the background but still ... At that time my applications were getting noticeably slow, almost unresponsive. Once plasmashell was killed, everything went back to normal (and again 200MB or RAM were freed).
Your log: 53.71% of the time spent handling X events from the DRI driver saying "I've done something". We're getting ~1 million of these events. How long did you have callgrind on for? It seems excessive. Because of that 30% of the total time is then spent in KDE code processing these X events. That's something I super optimised last month that you clearly don't have yet. Latest frameworks will bring a huge improvement for you as that's now down to near zero, making us ~30% faster. Though I don't get why we're getting so many of these events. Other thing that's potentially super important, that I hadn't seen before. 27% of the time is spend in __memmove in libc. Unfortuantely I can't really see what's going on there as we don't have symbols for libxcb (not sure if it's you who needs to install them or me) But one thing it could mean is we're swapping graphic card memory. Can you install intel-gpu-tools and run intel-gpu-top / intel-gpu-overlay and see if that says anything useful.
>Unfortuantely I can't really see what's going on there as we don't have symbols for libxcb (not sure if it's you who needs to install them or me) Ah found out. Could you install libxcb debug symbols and redo this for me again?
Did you find out something in my log? I had to return to set "running: false" in that file because plasmashell process uses 6-7% of CPU load that seems excessive to me for one network and CPU monitor widget, even if it's not worse than the other friend.
Hi David, Unfortunately in KUbuntu there are many debug extensions for libxcb and not one is called just "libxcb-dbg". No meta package either as far as I can tell. I will provide a screen shot with all available libxcb debug packages and then you can indicate the ones you need. Question: are any private information recorded by libxcb debug extensions inside callgrind output file ? Thank you.
Created attachment 97153 [details] here is the list of all libxcb debugging symbols available on my KUbuntu install Which one of them do you need ?