[NVAA]: Shutdown (poweroff) get stuck when runtime PM is enabled
Submitted by Alexander Stein
Assigned to Nouveau Project
Description
I'm currently running a 3.19 kernel where I looked into the problem that one of my systems doesn't shutdown cleanly most of the time. THis behavior started from some older kernels, I guess it's 5addcf0a5f0fadc ("nouveau: add runtime PM support (v0.9").
My board is a Asus M3N78-EM with a
02:00.0 VGA compatible controller: NVIDIA Corporation C77 [GeForce 8300] (rev a2)
During shutdown dmesg shows the following:
[ 38.476675] systemd-shutdown[1]: Powering off.
[ 38.536997] sd 1:0:0:0: [sdb] Synchronizing SCSI cache
[ 38.542522] sd 1:0:0:0: [sdb] Stopping disk
[ 41.069224] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 41.074745] sd 0:0:0:0: [sda] Stopping disk
That's all.
I added some printk to my source tree and could trace the shutdown execution path down to __pm_runtime_barrier where dev->power.runtime_status == 3. The call to schedule() finally seems to be the deadlock.
Of course, if I compile my kernel with CONFIG_PM=n everything is fine. Reenabling it again the problem occurs again.
A workaround suggested on IRC is to set runpm=0. This seems to work as the system did clean shutdowns from this change on.
As I consider this really as a workaround I would like to fix this.