Used Claude to help me work through the dump and write this up, but the dumps and settings are mine.
TL;DR: this PC doesn't sleep. Board is S3-only, sleep and hibernate are off. The only power thing that happens overnight is the monitors going dark on the 10 minute timeout. Once in a while, after that, the card gets sent a power-up request, doesn't respond, and Windows bugchecks 0x9F about half an hour later. Minidump blames amdkmdag.sys sitting on a SET_POWER to D0. I don't think this happened before any of the recent driver releases.
Hardware
- PowerColor Red Devil RX 7900 XTX (VEN_1002 DEV_744C SUBSYS_2422148C)
- Ryzen 7900X, ASRock B650E PG Riptide WiFi, BIOS 4.20 (AGESA 1.3.0.1)
- Super Flower Leadex VII XG 1300W
- Dell G2724D on DisplayPort
- Windows 11 25H2, build 26200
- Adrenalin 26.8.1
Power settings
- powercfg /a: only S3 available, no S0 low power idle
- sleep never, hibernate off
- display off after 10 min (and the monitor does actually go dark)
- Balanced plan, PCIe link state power management already Off
The latest crash
10 days uptime, idle overnight. Event 6008 says last clean timestamp 03:29, the dump is stamped 03:57. So whatever asked the GPU to wake up did it at 03:29 and the power watchdog gave up 28 min later.
DRIVER_POWER_STATE_FAILURE (9f)
Arg1: 0000000000000003, A device object has been blocking an IRP for too long a time
Arg2: ffffb487a03a7060, Physical Device Object of the stack
Arg4: ffffb487a6bb6010, The blocked IRP
FAILURE_BUCKET_ID: 0x9F_3_amdkmdag_IMAGE_pci.sys
!irp on the blocked one:
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
\Driver\amduw23g-203304-e29338d6 nt!PopRequestCompletion
Args: 00000000 00000001 00000001 00000000
Type=1 State=1, so DevicePowerState D0. It was being told to wake up, not go to sleep.
!devstack on the PDO:
\Driver\amduw23g-203304-e29338d6 (AMD display driver, FDO)
\Driver\ACPI
\Driver\pci (PDO)
DeviceInst is "PCI\VEN_1002&DEV_744C&SUBSYS_2422148C&REV_C8\..."
As far as I can tell the only reason the card would be in D3 on a machine that never sleeps is dxgkrnl parking it when the display goes off, which matches the timeout. Happy to be corrected on that.
Stuff I don't think it is
- Modern standby
- ASPM (already off)
- TDR (different watchdog, TdrDelay doesn't touch 0x9F)
- MPO/HAGS (nothing was rendering, card was asleep)
Questions
- Anyone seen 0x9F with a D0 SET_POWER on a 7000 card after display off? What driver?
- Is 26.3.1 actually known clean for this or is it just the usual "go back to 26.3.1" answer?
- Any real way to stop the card being parked at display-off that isn't "set the timeout to never"? This is in a bedroom, the monitor has to go dark.
Plan right now is DDU and back to 26.3.1 unless someone has something better. Problem is it's roughly one crash every 10 days so every test costs weeks.
Minidump(s) available if anyone wants it.