[DC] System crashes when woken up from S3 sleep while HDMI display is switched off
Submitted by dwagner
Assigned to Default DRI bug account
Link to original bug (#102323)
Description
My system invariably crashes (no picture, no reaction to any input, not even from a remote ssh session) when I do the following:
- echo mem >/sys/power/state
2. Wait until the blinking power LED of the system indicates it is S3-sleeping
3. Switch off the one single HDMI display connected to the GPU. (Make sure it is actually off in a way that powers down the HDMI input - some displays have "soft-off" modes that keep HDMI inputs powered.)
4. Press some key to make the system wake up from S3-sleep (while the display is still off).
At this point, the system is inresponsive. If I power up the display, it reports no HDMI input signal (so not just a black image, actually no signal).
My system is using an RX 460 GPU to drive one single HDMI display.
To narrow down the possible causes, I did not start X11 at all after freshly rebooting, and I use "video=DP-1:d video=DVI-D-1:d video=HDMI-A-1:1024x768" on the kernel command line to make sure that really just that one connected display is driven, at a harmless 1024x768 mode.
(The symptom also occurs when using X11 other resolutions.)
I am running a kernel compiled from https://cgit.freedesktop.org/~agd5f/linux/log/?h=amd-staging-drm-next as of "commit 94097b0f7f1bfa54b3b1f8b0d74bbd271a0564e4" (so the very latest amdgpu version as of today).
Notice that my system does not crash if I wake it up from S3 sleep after turning on the HDMI display.
Unluckily, above described 100% reproducable crash scenario does not produce any error log / dmesg messages I could cite here.
However, I can cite some scary dmesg output that occurs if instead of sending the system to S3 sleep I just:
1. Switch off the one single HDMI display connected to the GPU.
2. Press Ctrl-Alt-F2 then Ctrl-Alt-F3 to cycle through some virtual consoles (notice: again no X11 involved, here).
This action causes dmesg output like this:
[ 3196.798430] [drm] link=1, dc_sink_in= (null) is now Disconnected
[ 3196.798433] [drm] DCHPD: connector_id=1: Old sink=ffff8807f6804c00 New sink= (null)
[ 3196.798475] ------------[ cut here ]------------
[ 3196.798491] WARNING: CPU: 0 PID: 89 at drivers/gpu/drm/drm_mode_object.c:237 drm_object_property_set_value+0x5d/0x70 [drm]
[ 3196.798492] Modules linked in: blowfish_generic blowfish_x86_64 blowfish_common des3_ede_x86_64 des_generic cast5_avx_x86_64 cast5_generic cast_common cbc twofish_generic twofish_avx_x86_64 twofish_x86_64_3way twofish_x86_64 twofish_common serpent_avx2 serpent_avx_x86_64 serpent_sse2_x86_64 serpent_generic lrw gf128mul ablk_helper xts arc4 md4 nls_utf8 cifs ccm dns_resolver fscache ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG xt_tcpudp xt_owner cmac xt_mark iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bnep iptable_mangle cpufreq_ondemand msr iptable_filter btusb snd_hda_codec_realtek btrtl btbcm snd_hda_codec_generic btintel bluetooth snd_hda_codec_hdmi nls_iso8859_1 snd_hda_intel nls_cp437 snd_hda_codec ecdh_generic vfat rfkill fat igb snd_hda_core crc16
[ 3196.798519] ptp pps_core edac_mce_amd dca snd_hwdep kvm_amd snd_pcm snd_timer kvm snd soundcore sp5100_tco irqbypass evdev i2c_piix4 shpchp input_leds pcspkr led_class tpm_tis tpm_tis_core tpm 8250_dw button acpi_cpufreq sch_fq_codel usbip_host usbip_core sg exfat(O) it87(O) hwmon_vid ip_tables x_tables algif_skcipher af_alg sd_mod uas usb_storage serio_raw atkbd libps2 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel aes_x86_64 crypto_simd glue_helper cryptd ccp rng_core ahci xhci_pci libahci xhci_hcd libata usbcore scsi_mod usb_common i8042 serio amdgpu i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm xfs libcrc32c crc32c_generic crc32c_intel dm_crypt dm_mod dax nvme nvme_core i2c_dev
[ 3196.798554] CPU: 0 PID: 89 Comm: kworker/0:1 Tainted: G W O 4.13.0-rc5-amd+ #3 (closed)
[ 3196.798555] Hardware name: System manufacturer System Product Name/PRIME X370-PRO, BIOS 0807 07/19/2017
[ 3196.798612] Workqueue: events dm_irq_work_func [amdgpu]
[ 3196.798613] task: ffff8807fad82940 task.stack: ffffc9000354c000
[ 3196.798626] RIP: 0010:drm_object_property_set_value+0x5d/0x70 [drm]
[ 3196.798627] RSP: 0018:ffffc9000354fdb8 EFLAGS: 00010246
[ 3196.798629] RAX: ffffffffa04b4c80 RBX: ffff8807f5896000 RCX: ffff8807f5896148
[ 3196.798629] RDX: 0000000000000000 RSI: ffff8807fa8bf180 RDI: ffff8807f5896028
[ 3196.798630] RBP: ffffc9000354fdb8 R08: 0000000000000009 R09: 0000000000000004
[ 3196.798631] R10: ffffea001e483800 R11: 0000000000000001 R12: ffff8807f5896028
[ 3196.798632] R13: ffff8807f71361f8 R14: ffff88081ec19080 R15: ffff8807fad67800
[ 3196.798633] FS: 0000000000000000(0000) GS:ffff88081ec00000(0000) knlGS:0000000000000000
[ 3196.798634] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3196.798635] CR2: 000000e00cc5d1c0 CR3: 00000007f80ad000 CR4: 00000000003406f0
[ 3196.798636] Call Trace:
[ 3196.798691] amdgpu_dm_remove_sink_from_freesync_module+0x82/0xb0 [amdgpu]
[ 3196.798743] amdgpu_dm_update_connector_after_detect+0x197/0x200 [amdgpu]
[ 3196.798794] handle_hpd_irq+0x4c/0x90 [amdgpu]
[ 3196.798845] dm_irq_work_func+0x57/0x70 [amdgpu]
[ 3196.798848] process_one_work+0x1db/0x3e0
[ 3196.798850] worker_thread+0x47/0x3e0
[ 3196.798853] kthread+0x125/0x140
[ 3196.798854] ? process_one_work+0x3e0/0x3e0
[ 3196.798856] ? kthread_create_on_node+0x70/0x70
[ 3196.798860] ret_from_fork+0x22/0x30
[ 3196.798861] Code: 71 08 74 2b 83 ef 01 b8 01 00 00 00 48 83 c7 01 eb 0a 48 83 c0 01 48 39 34 c1 74 16 48 39 f8 4c 63 c0 75 ee b8 ea ff ff ff 5d c3 `<0f>` ff eb c0 45 31 c0 4a 89 94 c1 c8 00 00 00 31 c0 5d c3 0f 1f
[ 3196.798888] ---[ end trace dfc393643d376a34 ]---
[ 3196.798995] [drm] Atomic commit: RESET. crtc id 0:[ffff8807f6382000]
[ 3196.798997] [drm] dc_commit_context: 0 streams
[ 3222.733648] [drm] [Detect] [HDMIA][ConnIdx:1] LG TV: [Block 0] 00 FF FF FF FF FF FF 00 1E 6D 01 00 01 01 01 01 01 19 01 03 80 A0 5A 78 0A EE 91 A3 54 4C 99 26 0F 50 54 A1 08 00 31 40 45 40 61 40 71 40 81 80 01 01 01 01 01 01 08 E8 00 30 F2 70 5A 80 B0 58 8A 00 40 84 63 00 00 1E 02 3A 80 18 71 38 2D 40 58 2C 45 00 40 84 63 00 00 1E 00 00 00 FD 00 3A 3E 1E 88 3C 00 0A 20 20 20 20 20 20 00 00 00 FC 00 4C 47 20 54 56 0A 20 20 20 20 20 20 20 01 A0 ^
[ 3222.733664] [drm] [Detect] [HDMIA][ConnIdx:1] LG TV: [Block 1] 02 03 55 F1 58 10 9F 04 13 05 14 03 02 12 20 21 22 15 01 60 61 5D 5E 5F 65 66 62 63 64 29 3D 06 C0 15 07 50 09 57 07 7C 03 0C 00 20 00 B8 3C 20 C0 8E 01 02 03 04 01 4F 3F FC 08 10 18 10 06 10 16 10 28 10 67 D8 5D C4 01 78 80 03 E3 05 C0 00 E4 0F 00 C0 18 66 21 50 B0 51 00 1B 30 40 70 36 00 40 84 63 00 00 1E 01 1D 00 72 51 D0 1E 20 6E 28 55 00 40 84 63 00 00 1E 00 00 00 00 00 00 8E ^
[ 3222.733667] [drm] dc_link_detect: manufacturer_id = 6D1E, product_id = 1, serial_number = 1010, manufacture_week = 1, manufacture_year = 25, display_name = LG TV, speaker_flag = 5, audio_mode_count = 3
[ 3222.733668] [drm] dc_link_detect: mode number = 0, format_code = 7, channel_count = 5, sample_rate = 6, sample_size = 192
[ 3222.733669] [drm] dc_link_detect: mode number = 1, format_code = 2, channel_count = 5, sample_rate = 7, sample_size = 80
[ 3222.733670] [drm] dc_link_detect: mode number = 2, format_code = 1, channel_count = 1, sample_rate = 87, sample_size = 7
[ 3222.733672] [drm] link=1, dc_sink_in=ffff8807f6805800 is now Connected
[ 3222.733673] [drm] DCHPD: connector_id=1: Old sink= (null) New sink=ffff8807f6805800
[ 3222.733716] ------------[ cut here ]------------
[ 3222.733729] WARNING: CPU: 0 PID: 89 at drivers/gpu/drm/drm_mode_object.c:237 drm_object_property_set_value+0x5d/0x70 [drm]
[ 3222.733730] Modules linked in: blowfish_generic blowfish_x86_64 blowfish_common des3_ede_x86_64 des_generic cast5_avx_x86_64 cast5_generic cast_common cbc twofish_generic twofish_avx_x86_64 twofish_x86_64_3way twofish_x86_64 twofish_common serpent_avx2 serpent_avx_x86_64 serpent_sse2_x86_64 serpent_generic lrw gf128mul ablk_helper xts arc4 md4 nls_utf8 cifs ccm dns_resolver fscache ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG xt_tcpudp xt_owner cmac xt_mark iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bnep iptable_mangle cpufreq_ondemand msr iptable_filter btusb snd_hda_codec_realtek btrtl btbcm snd_hda_codec_generic btintel bluetooth snd_hda_codec_hdmi nls_iso8859_1 snd_hda_intel nls_cp437 snd_hda_codec ecdh_generic vfat rfkill fat igb snd_hda_core crc16
[ 3222.733754] ptp pps_core edac_mce_amd dca snd_hwdep kvm_amd snd_pcm snd_timer kvm snd soundcore sp5100_tco irqbypass evdev i2c_piix4 shpchp input_leds pcspkr led_class tpm_tis tpm_tis_core tpm 8250_dw button acpi_cpufreq sch_fq_codel usbip_host usbip_core sg exfat(O) it87(O) hwmon_vid ip_tables x_tables algif_skcipher af_alg sd_mod uas usb_storage serio_raw atkbd libps2 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel aes_x86_64 crypto_simd glue_helper cryptd ccp rng_core ahci xhci_pci libahci xhci_hcd libata usbcore scsi_mod usb_common i8042 serio amdgpu i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm xfs libcrc32c crc32c_generic crc32c_intel dm_crypt dm_mod dax nvme nvme_core i2c_dev
[ 3222.733784] CPU: 0 PID: 89 Comm: kworker/0:1 Tainted: G W O 4.13.0-rc5-amd+ #3 (closed)
[ 3222.733785] Hardware name: System manufacturer System Product Name/PRIME X370-PRO, BIOS 0807 07/19/2017
[ 3222.733834] Workqueue: events dm_irq_work_func [amdgpu]
[ 3222.733835] task: ffff8807fad82940 task.stack: ffffc9000354c000
[ 3222.733846] RIP: 0010:drm_object_property_set_value+0x5d/0x70 [drm]
[ 3222.733847] RSP: 0018:ffffc9000354fd98 EFLAGS: 00010246
[ 3222.733848] RAX: ffffffffa04b4c80 RBX: ffff8807f5896000 RCX: ffff8807f5896148
[ 3222.733849] RDX: 0000000000000000 RSI: ffff8807fa8bf180 RDI: ffff8807f5896028
[ 3222.733849] RBP: ffffc9000354fd98 R08: 0000000000000009 R09: ffff8807f7222700
[ 3222.733850] R10: ffff8807fa63ddd0 R11: 0000000000000039 R12: ffff8807f5940000
[ 3222.733851] R13: 0000000000000000 R14: ffff8807f5896028 R15: ffff8807fad67800
[ 3222.733852] FS: 0000000000000000(0000) GS:ffff88081ec00000(0000) knlGS:0000000000000000
[ 3222.733853] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3222.733853] CR2: 00007fff0e92afe0 CR3: 00000007f84ea000 CR4: 00000000003406f0
[ 3222.733854] Call Trace:
[ 3222.733902] amdgpu_dm_add_sink_to_freesync_module+0x8f/0x1c0 [amdgpu]
[ 3222.733947] amdgpu_dm_update_connector_after_detect+0xb9/0x200 [amdgpu]
[ 3222.733991] handle_hpd_irq+0x4c/0x90 [amdgpu]
[ 3222.734034] dm_irq_work_func+0x57/0x70 [amdgpu]
[ 3222.734037] process_one_work+0x1db/0x3e0
[ 3222.734039] worker_thread+0x47/0x3e0
[ 3222.734041] kthread+0x125/0x140
[ 3222.734043] ? process_one_work+0x3e0/0x3e0
[ 3222.734044] ? kthread_create_on_node+0x70/0x70
[ 3222.734047] ret_from_fork+0x22/0x30
[ 3222.734048] Code: 71 08 74 2b 83 ef 01 b8 01 00 00 00 48 83 c7 01 eb 0a 48 83 c0 01 48 39 34 c1 74 16 48 39 f8 4c 63 c0 75 ee b8 ea ff ff ff 5d c3 `<0f>` ff eb c0 45 31 c0 4a 89 94 c1 c8 00 00 00 31 c0 5d c3 0f 1f
[ 3222.734072] ---[ end trace dfc393643d376a35 ]---
[ 3222.734191] [drm] Got external EDID base block and 1 extension from "edid/LG_EG9609_edid.bin" for connector "HDMI-A-1"
[ 3222.735024] [drm] Atomic commit: SET crtc id 0: [ffff8807f6382000]
[ 3222.735027] [drm] dc_commit_context: 1 streams
[ 3222.735029] [drm] core_stream 0xf6802800: src: 0, 0, 1024, 768; dst: 0, 0, 1024, 768, colorSpace:4
[ 3222.735030] [drm] pix_clk_khz: 65000, h_total: 1344, v_total: 806, pixelencoder:3, displaycolorDepth:2
[ 3222.735031] [drm] sink name: LG TV, serial: 16843123
[ 3222.735032] [drm] link: 1
[ 3222.737661] [drm] [Mode] [HDMIA][ConnIdx:1] {1024x768, 1344x806@65000Khz}^