https://bugs.kde.org/show_bug.cgi?id=484323

Maks Verver <m...@verver.ch> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |m...@verver.ch

--- Comment #32 from Maks Verver <m...@verver.ch> ---
The high CPU usage in kwin_x11 is caused by it repeatedly receiving an
XCB_CONFIGURE_NOTIFY message here:

https://github.com/qt/qtbase/blob/4656fabd8a6ff46f786cb48c220511ebe43ea300/src/plugins/platforms/xcb/qxcbconnection.cpp#L586

This causes a call initializeScreens() which causes EDID data to be reloaded
from "/usr/share/hwdata/pnp.ids" which consumes most of the CPU cycles, but
this is clearly not the root cause of the loop.

I noticed that on my system, the three processes using most CPU are: kwin_x11
(81.1%), Xorg (48.5%), ksmserver (18.3%).

Suspending any of these three processes (using `kill -STOP`) causes CPU usage
to drop to 0% immediately. Resuming the process (using `kill -CONT`) causes the
problem to return.

Interestingly, there are a bunch of other processes that are using smaller
amounts of CPU (1%-4%), all related to KDE: plasmashell, kscreenlocker_greet,
kactivitymanagerd, kded6, org_kde_powerdevil, ... Suspending any of these does
NOT fix the high CPU usage, so they are not involved in the loop. However,
suspending any of the top 3 DOES stop the high CPU usage of those other
processes. This suggests that the cycle is not a one-to-one communication, but
a message that is being broadcast to all KDE processes (by Xorg?). Most simply
ignore it (hence the low but nonzero CPU usage) while only kwin_x11 and
ksmserver do something significant with it, and at least one of these processes
triggers another event to be sent.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to