Skip to content

ddcutil 3.0.0 hangs the amdgpu SMU at every login via the shell's brightness probe (RX 7600), session hard-freezes #11499

Description

@hegjon

System details

AMD Ryzen 9 (Granite Ridge) + discrete Radeon RX 7600 (Navi 33, 1002:7480), ASUS PA32UCDM on HDMI-A-1, Omarchy 4.0.0.r2100.gb5589fa-1 (dev), Linux 7.2.4-arch1-2, Hyprland 0.56.2, quickshell 0.3.1, mesa 26.2.2

What's wrong?

Since the Arch repos shipped ddcutil 3.0.0-1 (2026-09-12), every login on this machine hard-freezes the whole session within 2 to 12 seconds of Hyprland starting. Mouse, keyboard and TTY switching are all dead; only a hard reset recovers it. Three consecutive boots failed the same way. Downgrading only ddcutil to 2.2.7-1 fixes it completely, on the same kernel and linux-firmware.

The trigger is Omarchy's own login path. The shell's monitor panel calls refresh() from Component.onCompleted, which runs omarchy-monitor-state -> omarchy-brightness-display --monitor HDMI-A-1 -> omarchy-brightness-display-ddc -> ddcutil --skip-ddc-checks detect --brief. On ddcutil 3.0.0 that detect does threaded probing of every AMDGPU i2c bus, gets EIO on the RX 7600 buses, and the amdgpu SMU hangs a few seconds later.

Kernel log from one of the failed boots (monotonic seconds):

[  208.987] uwsm_hyprland.desktop[1681]: Welcome to Hyprland!
[  212.710] ddcutil[2344]: (i2c_ioctl_reader1) Error in ioctl() read, rc=-1, errno=EIO(-5): Input/output error, device=/dev/i2c-0
[  212.710] ddcutil[2344]:    i2c_threaded_initial_checks_by_businfo
[  212.710] ddcutil[2344]:    i2c_check_bus
[  212.710] ddcutil[2344]:    i2c_get_parsed_edid_by_fd
[  217.220] kernel: amdgpu 0000:03:00.0: Failed to set workload mask 0x00000001
[  220.992] kernel: amdgpu 0000:03:00.0: SMU is in hanged state, failed to send smu message!
[  220.992] kernel: amdgpu 0000:03:00.0: Failed to disable gfxoff!
[  230.622] kernel: amdgpu 0000:03:00.0: Starting sdma1 ring reset
...
[  369.994] kernel: INFO: task agetty:3623 blocked for more than 122 seconds.

The second failed boot is the same shape: Welcome to Hyprland! at 143.4 s, Failed to enable gfxoff! at 145.3 s, SMU is in hanged state at 145.8 s, ddcutil EIO on /dev/i2c-2 from 150.6 s.

A/B evidence, all on kernel 7.2.4-arch1-2 and linux-firmware 20260910-1:

ddcutil Boots Result
2.2.7-1 1 (before update) 6 days uptime, no amdgpu errors
3.0.0-1 3 SMU hang 2 to 12 s after Hyprland, hard freeze every time
2.2.7-1 (downgraded, IgnorePkg = ddcutil) 2 clean, journalctl -k has zero SMU/gfxoff/workload errors

What did you expect?

Logging in should not be able to take down the GPU. Either the shell's startup brightness probe should not run a full ddcutil detect unconditionally at every login, or Omarchy should not roll users onto ddcutil 3.0.0 until upstream fixes it.

Steps to reproduce

  1. Omarchy on an AMD desktop with a discrete RDNA3 card and an external monitor (no eDP-* panel, so the DDC path is taken).
  2. omarchy-update (or pacman -Syu) so that ddcutil becomes 3.0.0-1.
  3. Reboot and log in. Session freezes within seconds.
  4. sudo pacman -U https://archive.archlinux.org/packages/d/ddcutil/ddcutil-2.2.7-1-x86_64.pkg.tar.zst, add IgnorePkg = ddcutil to /etc/pacman.conf, reboot. Session is fine.

Upstream

This is a ddcutil 3.0.0 regression, tracked at rockowitz/ddcutil#629 ("3.0.0-1.1 causes AMDGPU to disappear from PCI bus and freezes Plasma immediately after login"). That thread has confirmations on RX 9070 XT, RX 7900 XTX and RX 7900 XT under KDE PowerDevil. This report adds Navi 33 (RX 7600) and a non-KDE trigger: Omarchy's shell.

Suggested mitigation on the Omarchy side

  • Ship a migration that downgrades ddcutil to 2.2.7-1 from the Arch archive and adds it to IgnorePkg until an upstream fix lands, or pin ddcutil<3.0.0 in the Omarchy repo.
  • Longer term, avoid running ddcutil detect at shell startup for every login. The cached-bus mechanism in omarchy-brightness-display-ddc already exists but the cache lives in $XDG_RUNTIME_DIR, so it is empty at every login and detect always runs once.

Filed by Claude Fable 5.1 via Claude Code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcompatibilityMake Omarchy work better on everything!

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions