SUMMARY After plasmashell has started, it is consuming CPU time doing apparently nothing. According to strace, it is woken up due to a ~16ms ppoll timeout. This is likely some animation which has not been stopped correctly. The polling stops as soon as the "Status and Notification" popup is opened the first time, afterwards the process is completely idle. STEPS TO REPRODUCE 1. Start plasmashell (as part of the session, or with --restart, does not matter) 2. Attach strace to the main thread 3. Open the popup using the ^ up arrow OBSERVED RESULT Plasmashell consumes CPU time doing nothing, and behaves correctly after opening the popup once. EXPECTED RESULT Plasmashell becomes idle immediately after start, without user intervention. SOFTWARE/OS VERSIONS Linux/KDE Plasma: (available in About System) KDE Plasma Version: 5.27.9 KDE Frameworks Version: 5.112 Qt Version: 5.15.11 ADDITIONAL INFORMATION
Are you able to reproduce this by simply restarting plasmashell? Or does it only happen when plasmashell stars following a login event? Can you provide a screenshot of that your System Tray looks like so I can see what's in it?
I have seen this also after "plasmashell --replace", so probably unrelated to session start (though, there may be some timing related stuff which has an influence). One influenced system was a fresh installation, i.e. very basic.
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
It's been a while, and there haven't been any new reports of this. I still have never seen it myself. Stefan, can you still reproduce this in a new clean user account in Plasma 6.4 or later? Thanks!
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME. For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging. Thank you for helping us make KDE software even better for everyone!
🐛🧹 This bug has been in NEEDSINFO status with no change for at least 30 days. Closing as RESOLVED WORKSFORME.
Maybe related: https://www.reddit.com/r/kde/comments/1nrbg96/kde_plasma_645_network_icon_refreshing_60_fps/
I have not tested on a clean user account, but both me and a person in this thread can reproduce it - https://www.reddit.com/r/kde/comments/1nrbg96/comment/nggt9ej/?context=1 I get plasmashell handling 165 events/s, and the other person 60/s, matching screen refresh rate. Issue seems as easy to reproduce as closing down all unneeded programs, calling systemctl --user restart plasma-plasmashell and watching events fire off in powertop. Operating System: Arch Linux KDE Plasma Version: 6.4.5 KDE Frameworks Version: 6.18.0 Qt Version: 6.9.2 Kernel Version: 6.16.8-arch2-1 (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 5800H with Radeon Graphics Memory: 32 GiB of RAM (27.3 GiB usable) Graphics Processor 1: NVIDIA GeForce RTX 3060 Laptop GPU Graphics Processor 2: AMD Radeon Graphics Manufacturer: LENOVO Product Name: 82JQ System Version: Legion 5 Pro 16ACH6H
So this has been an issue since 5.27 and is still happening in 6.4.5. Any devs available to reproduce this issue? I might have to look at the code myself but I'm not familiar with who Plasma is coded.
Using QML_ANIMATION_TICK_DUMP=true plasmashell --replace, I can see: ***** Dumping Animation Tree ***** ( tick: 1053 delta: 13 ) QuickAnimatorProxyJob( 0x562682d558f0 state: 2 duration: -1 proxying: ( QSharedPointer(QuickAnimatorJob(0x562682d2b470) state:0duration:100target:ButtonShadow_QMLTYPE_48(0x562682d02db0, parent=0x562682e7e700, geometry=-3,-3 88x88)value:0) ) QuickAnimatorProxyJob( 0x562682d55ad0 state: 2 duration: -1 proxying: ( QSharedPointer(QuickAnimatorJob(0x562682e858f0) state:0duration:100target:ButtonShadow_QMLTYPE_48(0x562682cf59e0, parent=0x562682e79830, geometry=-3,-3 88x88)value:0) ) QuickAnimatorProxyJob( 0x562682da59b0 state: 2 duration: -1 proxying: ( QSharedPointer(QuickAnimatorJob(0x562682da5c50) state:0duration:100target:ButtonShadow_QMLTYPE_48(0x562682d35680, parent=0x562682c90690, geometry=-3,-3 88x88)value:0) ) QuickAnimatorProxyJob( 0x562682e9e400 state: 2 duration: -1 proxying: ( QSharedPointer(QuickAnimatorJob(0x562682e9e540) state:0duration:100target:ButtonShadow_QMLTYPE_48(0x562682c31960, parent=0x562682da8bb0, geometry=-3,-3 88x88)value:0) ) QuickAnimatorProxyJob( 0x562682ebeb10 state: 2 duration: -1 proxying: ( QSharedPointer(QuickAnimatorJob(0x562682ebec50) state:0duration:100target:ButtonShadow_QMLTYPE_48(0x562682d82c20, parent=0x562682d38230, geometry=-3,-3 88x88)value:0) ) FWICT those are the OpacityAnimators of libplasma ButtonShadow instances, but disabled (state: 0). The QuickAnimatorProxyJob for them is running though. Qt bug?
(In reply to Fabian Vogt from comment #10) > FWICT those are the OpacityAnimators of libplasma ButtonShadow instances, > but disabled (state: 0). The QuickAnimatorProxyJob for them is running > though. Qt bug? Maybe? With this diff applied to libplasma, the running QuickAnimatorProxyJobs are gone and strace shows that plasmashell is idling properly: diff --git a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml index e853972ec..757dce36f 100644 --- a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml +++ b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml @@ -28,6 +28,6 @@ KSvg.FrameSvgItem { opacity: showShadow ? 1 : 0 Behavior on opacity { enabled: Kirigami.Units.shortDuration > 0 - OpacityAnimator { duration: Kirigami.Units.shortDuration; easing.type: Easing.OutQuad } + NumberAnimation { duration: Kirigami.Units.shortDuration; easing.type: Easing.OutQuad } } }
If I set the Plasma desktop animation speed to instant, it solves the issue. So definitely a Qt animation stuck in some error mode issue.
(In reply to Fabian Vogt from comment #11) > (In reply to Fabian Vogt from comment #10) > > FWICT those are the OpacityAnimators of libplasma ButtonShadow instances, > > but disabled (state: 0). The QuickAnimatorProxyJob for them is running > > though. Qt bug? > > Maybe? With this diff applied to libplasma, the running > QuickAnimatorProxyJobs are gone and strace shows that plasmashell is idling > properly: > > diff --git > a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > index e853972ec..757dce36f 100644 > --- a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > +++ b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > @@ -28,6 +28,6 @@ KSvg.FrameSvgItem { > opacity: showShadow ? 1 : 0 > Behavior on opacity { > enabled: Kirigami.Units.shortDuration > 0 > - OpacityAnimator { duration: Kirigami.Units.shortDuration; > easing.type: Easing.OutQuad } > + NumberAnimation { duration: Kirigami.Units.shortDuration; > easing.type: Easing.OutQuad } > } > } When making this change, do you have to rebuild Qt/Plasma libraries? I manually applied the code change in /usr/lib64/qt6/qml/org/kde/plasma/components/private/ButtonShadow.qml But the problem persists.
(In reply to Bo Zhang from comment #13) > (In reply to Fabian Vogt from comment #11) > > (In reply to Fabian Vogt from comment #10) > > > FWICT those are the OpacityAnimators of libplasma ButtonShadow instances, > > > but disabled (state: 0). The QuickAnimatorProxyJob for them is running > > > though. Qt bug? > > > > Maybe? With this diff applied to libplasma, the running > > QuickAnimatorProxyJobs are gone and strace shows that plasmashell is idling > > properly: > > > > diff --git > > a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > > b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > > index e853972ec..757dce36f 100644 > > --- a/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > > +++ b/src/declarativeimports/plasmacomponents3/private/ButtonShadow.qml > > @@ -28,6 +28,6 @@ KSvg.FrameSvgItem { > > opacity: showShadow ? 1 : 0 > > Behavior on opacity { > > enabled: Kirigami.Units.shortDuration > 0 > > - OpacityAnimator { duration: Kirigami.Units.shortDuration; > > easing.type: Easing.OutQuad } > > + NumberAnimation { duration: Kirigami.Units.shortDuration; > > easing.type: Easing.OutQuad } > > } > > } > > When making this change, do you have to rebuild Qt/Plasma libraries? Unfortunately yes. For some reason, libplasma ships the .qml file both inside the .so as well as in the filesystem. > I > manually applied the code change in > /usr/lib64/qt6/qml/org/kde/plasma/components/private/ButtonShadow.qml > But the problem persists.