[plasmashell] [Bug 507456] Powerdevil slows down login due to timeout with dccutil execution

Mauro <[email protected]>
Newsgroups gmane.comp.kde.devel.bugs
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=507456

--- Comment #16 from Mauro <[email protected]> ---
(In reply to Nate Graham from comment #12)

Now tested reliably on Kubuntu 26.04. Short answer: **yes, the underlying
regression is still present** — but it was hidden on my day-to-day session by a
misconfiguration, so it's worth reading the details.

**Environment**
- Kubuntu 26.04 LTS, kernel 7.0.0-29-generic, Wayland
- KDE Plasma 6.6.6, powerdevil 4:6.6.6-0ubuntu0.1
- ddcutil / libddcutil5 2.2.6-1 (shared lib libddcutil.so.5.5.0)
- AMD RX 6700 XT (amdgpu), 2× ASUS ROG on DisplayPort (PG278QR, PG279Q)

**Why login *felt* fine at first**
On my normal session, powerdevil started fast — but only because a leftover
`~/.config/ddcutil/ddcutilrc` from my 25.04 tuning attempts uses the pre-2.0
`key = value` syntax, which is invalid in ddcutil 2.2.x. Every line is rejected
and libddcutil fails to initialize:

```
org.kde.powerdevil: [DDCutilDetector]: Could not initialize ddcutil API. Not
using DDC for monitor brightness.
   Error(s) processing configuration file:
/home/mauro/.config/ddcutil/ddcutilrc
      Line 4: Invalid key name "sleep-multiplier" in section global
      ...
```

So powerdevil was simply skipping DDC entirely. That masks the bug (and
disables DDC brightness control).

**Clean test with default settings (config moved aside)**
Once the invalid `ddcutilrc` is removed, the regression reproduces exactly as
before:

```
$ time ddcutil detect      # 4 consecutive runs
  warm-up : 12.42 s
  #1      : 13.19 s
  #2      : 12.41 s
  #3      : 12.40 s

$ time systemctl --user restart plasma-powerdevil.service
  12.37 s
```

powerdevil log during that restart (same retry storm as in the original
report):

```
Starting libddcutil. library built Mar 11 2026 ... Initializing libddcutil.
ddcutil version: 2.2.6
busno=9,  sleep-multiplier= 2,00, Testing for unsupported feature 0xdd returned
Error_Info[DDCRC_RETRIES ... causes: DDCRC_READ_ALL_ZERO(10)]
Turning off dynamic sleep and retrying
busno=9,  sleep-multiplier = 1,00, Retesting for unsupported feature 0xdd ...
DDCRC_READ_ALL_ZERO(10)
busno=9,  ... feature 0x41 ... DDCRC_READ_ALL_ZERO(10)
busno=10, ... feature 0xdd ... DDCRC_READ_ALL_ZERO(10)
busno=10, ... feature 0x41 ... DDCRC_READ_ALL_ZERO(10)
Library initialization complete.        <-- ~12 s after "Starting libddcutil"
```

**Conclusion**
On Kubuntu 26.04 with ddcutil 2.2.6, libddcutil still spends ~12 s probing two
DisplayPort ASUS ROG monitors, because the "unsupported feature" reads (0xdd,
0x41) return DDCRC_READ_ALL_ZERO and are retried with dynamic sleep. This
matches your suspicion in comment #9 that the root cause is in ddcutil itself,
not powerdevil. The monitors are otherwise fully DDC-responsive (I2C 0x37
responsive: true) and all controls work instantly once initialized.

Side note that may help other reporters: my earlier claim that `ddcutilrc`
tweaks "had no effect" was wrong — the options were never applied because of
the invalid pre-2.0 syntax. With correct 2.2.x syntax (`options :
--sleep-multiplier ... --disable-dynamic-sleep` under `[libddcutil]`), these
settings *are* applied and do change init time, so they can serve as a
workaround.

Happy to test any patched libddcutil or provide `--ddcdata`/verbose traces.
Setting status back to REPORTED.

-- 
You are receiving this mail because:
You are watching all bug changes.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.