[plasmashell] [Bug 522329] High single core CPU usage desktop lagging when waking up from sleep

"Sanfod Rockowitz" <[email protected]> Tue, 04 Aug 2026 01:46:51 +0000
Newsgroups gmane.comp.kde.devel.bugs
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=522329

--- Comment #23 from Sanfod Rockowitz <[email protected]> ---
To give my answers to tarballwaif more context, some background: 

ddcutil/libddcutil users require RW access to /dev/i2c devices.  This can be
enabled in one of two ways: 
- assigning /dev/i2c devices to group i2c in a udev rule and then assigning
non-root users group i2c
- Using token uaccess in the  udev rule.

The second is generally preferable as ddcutil "just works" for everyone after
installation, with no manual step required on the part of each user.  Expecting
every KDE user to make the group assignment is unreasonable. 

But KDE Powerdevil's use of libddcutil uncovered a problem with  the UACCESS
approach: When the system resumes from sleep, the video driver creates the
/dev/i2c devices anew.  The inode group assignment happens immediately. 
However, there's a sliver of time between when the /dev/i2c devices become
visible and the  permissions granted by UACCSS become effective.  libddcutil
can hit that window, with the resulting ephemeral  EACCES errors.  

Recent changes attempt to reduce the impact of EACCES error by both avoiding
the them (by briefly pausing before attempting to open a /dev/i2c device in
certain situations, and by reducing the performance impact of EACCESS diagnosis
and recovery. 

With that as background: 

- Please continue to test without assigning your user to group i2c.   It may be
that after all the testing that you need to assign your user to group i2c, but
that is to handle this exceptional situation. 

-  You do need to restart powerdevil after every libddcutil configuration
change.  The config file is only applied when powerdevil loads libddcutil.

- Your ddcutilrc file looks correct. 

- There are two ways to disable powerdevil's use of libddcutil:
  - Set environment variable POWERDEVIL_NO_DDCUTIL=1 for the powerdevil service
on startup
  - Add the following to ddcutilrc and restart powerdevil
~~~
options: --disable-api
~~~

-

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