Comment 8 for bug 1880032

Revision history for this message
Dexuan Cui (decui) wrote :

Unluckily this commit breaks hibernation:
0a14dbaa0736 ("video: hyperv_fb: Fix hibernation for the deferred IO feature"):
https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-azure/+git/focal/commit/?h=Ubuntu-azure-5.4.0-1022.22&id=0a14dbaa0736a6021c02e74d42cf3a7ca5438da6

We should include the patch only if the kernel also includes
a4ddb11d297e ("video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver"

Now I'm seeing a hang/panic issue when hibernating the VM ("5.4.0-1022-azure #22-Ubuntu"):
[ 67.736061] ------------[ cut here ]------------
[ 67.736068] WARNING: CPU: 5 PID: 1358 at kernel/workqueue.c:3040 __flush_work+0x1b5/0x1d0
[ 67.736068] Modules linked in: xt_owner iptable_security xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c bpfilter nls_iso8859_1 dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua sb_edac crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper joydev hid_generic hyperv_fb cfbfillrect hid_hyperv intel_rapl_perf serio_raw hyperv_keyboard pata_acpi hv_netvsc hv_balloon hid cfbimgblt pci_hyperv cfbcopyarea hv_utils pci_hyperv_intf sch_fq_codel drm drm_panel_orientation_quirks i2c_core ip_tables x_tables autofs4
[ 67.736088] CPU: 5 PID: 1358 Comm: bash Not tainted 5.4.0-1022-azure #22-Ubuntu
[ 67.736089] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090007 06/02/2017
[ 67.736091] RIP: 0010:__flush_work+0x1b5/0x1d0
[ 67.736092] Code: f0 eb e3 4d 8b 7c 24 20 e9 f3 fe ff ff 8b 0b 48 8b 53 08 83 e1 08 48 0f ba 2b 03 80 c9 f0 e9 4f ff ff ff 0f 0b e9 68 ff ff ff <0f> 0b 45 31 f6 e9 5e ff ff ff e8 ec e0 fd ff 66 66 2e 0f 1f 84 00
[ 67.736095] RSP: 0018:ffffa7ce8a8ffb78 EFLAGS: 00010246
[ 67.736096] RAX: 0000000000000000 RBX: ffff8be3621f02a0 RCX: 0000000000000000
[ 67.736096] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff8be3621f02a0
[ 67.736097] RBP: ffffa7ce8a8ffbf0 R08: 0000000000000000 R09: 00000000ff010101
[ 67.736098] R10: ffff8be363f7a320 R11: 0000000000000001 R12: ffff8be3621f02a0
[ 67.736098] R13: 0000000000000001 R14: 0000000000000001 R15: ffffffffbc390fd1
[ 67.736099] FS: 00007f6df35fe740(0000) GS:ffff8be375d40000(0000) knlGS:0000000000000000
[ 67.736100] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 67.736100] CR2: 0000561eef2c1b50 CR3: 0000000e40a14004 CR4: 00000000001706e0
[ 67.736102] Call Trace:
[ 67.736108] __cancel_work_timer+0x107/0x180
[ 67.736119] cancel_delayed_work_sync+0x13/0x20
[ 67.736121] hvfb_suspend+0x48/0x80 [hyperv_fb]
[ 67.736122] vmbus_suspend+0x2a/0x40
[ 67.736125] dpm_run_callback+0x5b/0x150
[ 67.736127] __device_suspend_noirq+0x9e/0x2f0
[ 67.736128] dpm_suspend_noirq+0x101/0x2d0
[ 67.736130] dpm_suspend_end+0x53/0x80
[ 67.736132] hibernation_snapshot+0xd8/0x460
[ 67.736133] hibernate.cold+0x6d/0x1f6
[ 67.736135] state_store+0xde/0xe0
[ 67.736138] kobj_attr_store+0x12/0x20
[ 67.736141] sysfs_kf_write+0x3e/0x50
[ 67.736142] kernfs_fop_write+0xda/0x1b0
[ 67.736145] __vfs_write+0x1b/0x40
[ 67.736147] vfs_write+0xb9/0x1a0
[ 67.736149] ksys_write+0x67/0xe0
[ 67.736150] __x64_sys_write+0x1a/0x20
[ 67.736152] do_syscall_64+0x5e/0x200
[ 67.736156] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 67.736157] RIP: 0033:0x7f6df3712057

After I revert 0a14dbaa0736, hibernation works.