Hi, This is the first patchset to enable hibernation when Linux runs on Hyper-V. A second patchset to enhance the high-level VSC drivers (hv_netvsc, hv_storvsc, etc.) for hibernation will be posted later. The second patchset depends on this first patchset, so I hope this pathset can be accepted soon. The changes in this patchset are mostly straightforward new code that only runs when the VM enters hibernation, so IMHO it's pretty safe to have this patchset, because the hibernation feature never worked for Linux VM running on Hyper-V. The patchset is rebased on the branch hyperv-next of https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git and can also cleanly apply to Linus's tree. Hi Greg, tglx, I hope the patchset can go through Sasha's hyperv/linux.git tree, because the changes belong to the hv code and they need to be together to work properly. Michael Kelley reviewed the v1 of the patchset, so I added his Reviewed-by for patch 1, 2, 3 and 7. Michael, please review the other 3 patches again, and give your Reviewed-by if the updated version is ok to you. Changes in v2: Patch 3: Improved the changelog and added a comment. Patch 4: Remove the "hv_stimer_cleanup" in hv_synic_suspend(), because I suppose https://lkml.org/lkml/2019/7/27/5 will be accepted. Also improved changelog and the comment. Patch 5: Fixed the third argument of print_hex_dump_debug(). Also improved the changelog. Patch 6: Improved the changelog and the comment. Added a check for the 'vmbus_proto_version' in vmbus_bus_resume(). Thanks, Dexuan Dexuan Cui (7): x86/hyper-v: Suspend/resume the hypercall page for hibernation clocksource/drivers: Suspend/resume Hyper-V clocksource for hibernation Drivers: hv: vmbus: Break out synic enable and disable operations Drivers: hv: vmbus: Suspend/resume the synic for hibernation Drivers: hv: vmbus: Ignore the offers when resuming from hibernation Drivers: hv: vmbus: Suspend/resume the vmbus itself for hibernation Drivers: hv: vmbus: Implement suspend/resume for VSC drivers for hibernation arch/x86/hyperv/hv_init.c | 34 +++++++++ drivers/clocksource/hyperv_timer.c | 25 +++++++ drivers/hv/channel_mgmt.c | 29 +++++++- drivers/hv/connection.c | 3 +- drivers/hv/hv.c | 66 ++++++++++-------- drivers/hv/hyperv_vmbus.h | 4 ++ drivers/hv/vmbus_drv.c | 138 +++++++++++++++++++++++++++++++++++++ include/linux/hyperv.h | 3 + 8 files changed, 270 insertions(+), 32 deletions(-) -- 1.8.3.1