From: Dexuan Cui <decui@microsoft.com>
To: "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
Stephen Hemminger <sthemmin@microsoft.com>,
Sasha Levin <Alexander.Levin@microsoft.com>,
"sashal@kernel.org" <sashal@kernel.org>,
Haiyang Zhang <haiyangz@microsoft.com>,
KY Srinivasan <kys@microsoft.com>,
Michael Kelley <mikelley@microsoft.com>,
"tglx@linutronix.de" <tglx@linutronix.de>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Dexuan Cui <decui@microsoft.com>
Subject: [PATCH v4 00/12] Enhance the hv_vmbus driver to support hibernation
Date: Tue, 3 Sep 2019 00:23:15 +0000 [thread overview]
Message-ID: <1567470139-119355-1-git-send-email-decui@microsoft.com> (raw)
Hi all,
The patchset is to enhance hv_vmbus to support hibernation when Linux VM
runs on Hyper-V. A second patchset to enhance the high-level VSC drivers
(hv_netvsc, hv_storvsc, etc.) for hibernation will be posted after this
patchset is acceped. If you want to test this hibernation feaure, all the
needed patches can be found on my github branch:
https://github.com/dcui/linux/commits/decui/hibernation/2019-0830/v4/v5.3-rc6-plus
This patchset is based on v5.3-rc6, and can also cleanly apply to -rc7.
Please review.
Hi tglx,
I hope all the 12 patchset, including the below 3 patches,
[PATCH v4 01/12] x86/hyper-v: Suspend/resume the hypercall page for hibernation
[PATCH v4 02/12] x86/hyper-v: Implement hv_is_hibernation_supported()
[PATCH v4 03/12] clocksource/drivers: Suspend/resume Hyper-V
can go through Sasha's hyperv/linux.git tree, since all the changes belong
to the hv stuff. However, if you think it's better for these 3 patches to go
through your tip.git tree, it also works for me.
Hi Michael,
I added your Reviewed-by's for patch 1, 3~7, 9~10, since you have reviewed
these patches. Please review the v4 of the others: 2, 8, 11 and 12.
Thanks,
Dexuan
Changes in v4:
Patch 2: Enhanced the changelog.
Patch 8: Moved find_primary_channel_by_offer() to channel_mgmt.c, where
it's used.
Patch 10: Improved the changelog (typo) and comment.
Patch 11: Removed WARN_ON_ONCE(), added a comment for the case
nr_chan_close_on_suspend == 0.
Patch 12: Improved the comment.
Changes in v3:
Patch 2: Add a new API hv_is_hibernation_supported().
Patch 6: Add a new helper function is_sub_channel().
Patch 8: Find the old channels via Instance GUID rather than the RELID.
Patch 10: Add code to clean up hv_sock channels by force
Patch 11: Add code to wait in the suspend path: all the hv_sock channels
and sub-channels should be cleaned up first before Linux sends
the VMBUS UNLOAD message.
Patch 12: Add code to fix up the old primary channels before further
resuming.
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().
Dexuan Cui (12):
x86/hyper-v: Suspend/resume the hypercall page for hibernation
x86/hyper-v: Implement hv_is_hibernation_supported()
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: Add a helper function is_sub_channel()
Drivers: hv: vmbus: Implement suspend/resume for VSC drivers 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: Clean up hv_sock channels by force upon suspend
Drivers: hv: vmbus: Suspend after cleaning up hv_sock and sub channels
Drivers: hv: vmbus: Resume after fixing up old primary channels
arch/x86/hyperv/hv_init.c | 41 ++++++
drivers/clocksource/hyperv_timer.c | 25 ++++
drivers/hv/channel_mgmt.c | 161 +++++++++++++++++++---
drivers/hv/connection.c | 8 +-
drivers/hv/hv.c | 66 +++++----
drivers/hv/hyperv_vmbus.h | 30 +++++
drivers/hv/vmbus_drv.c | 265 +++++++++++++++++++++++++++++++++++++
include/asm-generic/mshyperv.h | 2 +
include/linux/hyperv.h | 16 ++-
9 files changed, 565 insertions(+), 49 deletions(-)
--
1.8.3.1
next reply other threads:[~2019-09-03 0:23 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-03 0:23 Dexuan Cui [this message]
2019-09-03 0:23 ` [PATCH v4 01/12] x86/hyper-v: Suspend/resume the hypercall page for hibernation Dexuan Cui
2019-09-05 15:44 ` Sasha Levin
2019-09-05 19:59 ` Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 02/12] x86/hyper-v: Implement hv_is_hibernation_supported() Dexuan Cui
2019-09-04 16:43 ` Michael Kelley
2019-09-03 0:23 ` [PATCH v4 03/12] clocksource/drivers: Suspend/resume Hyper-V clocksource for hibernation Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 04/12] Drivers: hv: vmbus: Break out synic enable and disable operations Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 05/12] Drivers: hv: vmbus: Suspend/resume the synic for hibernation Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 06/12] Drivers: hv: vmbus: Add a helper function is_sub_channel() Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 08/12] Drivers: hv: vmbus: Ignore the offers when resuming from hibernation Dexuan Cui
2019-09-04 16:43 ` Michael Kelley
2019-09-03 0:23 ` [PATCH v4 07/12] Drivers: hv: vmbus: Implement suspend/resume for VSC drivers for hibernation Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 09/12] Drivers: hv: vmbus: Suspend/resume the vmbus itself " Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 10/12] Drivers: hv: vmbus: Clean up hv_sock channels by force upon suspend Dexuan Cui
2019-09-03 0:23 ` [PATCH v4 11/12] Drivers: hv: vmbus: Suspend after cleaning up hv_sock and sub channels Dexuan Cui
2019-09-04 16:44 ` Michael Kelley
2019-09-03 0:23 ` [PATCH v4 12/12] Drivers: hv: vmbus: Resume after fixing up old primary channels Dexuan Cui
2019-09-04 16:45 ` Michael Kelley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1567470139-119355-1-git-send-email-decui@microsoft.com \
--to=decui@microsoft.com \
--cc=Alexander.Levin@microsoft.com \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikelley@microsoft.com \
--cc=sashal@kernel.org \
--cc=sthemmin@microsoft.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.