[PATCH hyperv-next v4 13/16] Drivers: hv: Free msginfo when the buffer fails to decrypt

2025-07-14 Thread Roman Kisel
e to host in Isolation VM") Reported-by: Michael Kelly Closes: https://lore.kernel.org/linux-hyperv/sn6pr02mb41573796f9787f67e0e97049d4...@sn6pr02mb4157.namprd02.prod.outlook.com Signed-off-by: Roman Kisel --- drivers/hv/channel.c | 32 ++-- 1 file changed, 22 in

[PATCH hyperv-next v4 14/16] Drivers: hv: Support confidential VMBus channels

2025-07-14 Thread Roman Kisel
To make use of Confidential VMBus channels, initialize the co_ring_buffers and co_external_memory fields of the channel structure. Advertise support upon negotiating the version and compute values for those fields and initialize them. Signed-off-by: Roman Kisel --- drivers/hv/channel_mgmt.c

[PATCH hyperv-next v4 15/16] Drivers: hv: Support establishing the confidential VMBus connection

2025-07-14 Thread Roman Kisel
To establish the confidential VMBus connection the CoCo VM guest first attempts to connect to the VMBus server run by the paravisor. If that fails, the guest falls back to the non-confidential VMBus. Implement that in the VMBus driver initialization. Signed-off-by: Roman Kisel --- drivers/hv

[PATCH hyperv-next v4 16/16] Drivers: hv: Set the default VMBus version to 6.0

2025-07-14 Thread Roman Kisel
The confidential VMBus is supported by the protocol version 6.0 onwards. Attempt to establish the VMBus 6.0 connection thus enabling the confidential VMBus features when available. Signed-off-by: Roman Kisel --- drivers/hv/connection.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion

[PATCH hyperv-next v4 06/16] Drivers: hv: Allocate the paravisor SynIC pages when required

2025-07-14 Thread Roman Kisel
SynIC when it is present. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 184 +++--- drivers/hv/hyperv_vmbus.h | 18 2 files changed, 112 insertions(+), 90 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 964b9102477d

[PATCH hyperv-next v4 10/16] Drivers: hv: Rename the SynIC enable and disable routines

2025-07-14 Thread Roman Kisel
The confidential VMBus requires support for the both hypervisor facing SynIC and the paravisor one. Rename the functions that enable and disable SynIC with the hypervisor. No functional changes. Signed-off-by: Roman Kisel --- drivers/hv/channel_mgmt.c | 2 +- drivers/hv/hv.c | 11

[PATCH hyperv-next v4 11/16] Drivers: hv: Functions for setting up and tearing down the paravisor SynIC

2025-07-14 Thread Roman Kisel
into separate functions so that SynIC interrupts can be enabled or disabled via the paravisor instead of the hypervisor if the paravisor SynIC is present. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 197 +--- 1 file changed, 185 insertions(+), 12

[PATCH hyperv-next v4 12/16] Drivers: hv: Allocate encrypted buffers when requested

2025-07-14 Thread Roman Kisel
Confidential VMBus is built around using buffers not shared with the host. Support allocating encrypted buffers when requested. Signed-off-by: Roman Kisel --- drivers/hv/channel.c | 49 +++ drivers/hv/hyperv_vmbus.h | 3 ++- drivers/hv/ring_buffer.c

[PATCH hyperv-next v4 05/16] Drivers: hv: Rename fields for SynIC message and event pages

2025-07-14 Thread Roman Kisel
istinguish them from the paravisor ones. The field name is also changed in mshv_root.* for consistency. No functional changes. Signed-off-by: Roman Kisel --- drivers/hv/channel_mgmt.c | 6 ++-- drivers/hv/hv.c | 66 +++ drivers/hv/hyperv_vm

[PATCH hyperv-next v4 08/16] Drivers: hv: remove stale comment

2025-07-14 Thread Roman Kisel
The comment about the x2v shim is ancient and long since incorrect. Remove the incorrect comment. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 816f8a14ff63..820711e954d1 100644

[PATCH hyperv-next v4 07/16] Drivers: hv: Post messages through the confidential VMBus if available

2025-07-14 Thread Roman Kisel
When the confidential VMBus is available, the guest should post messages to the paravisor. Update hv_post_message() to post messages to the paravisor rather than through GHCB or TD calls. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 11 ++- 1 file changed, 10 insertions(+), 1

[PATCH hyperv-next v4 09/16] Drivers: hv: Check message and event pages for non-NULL before iounmap()

2025-07-14 Thread Roman Kisel
It might happen that some hyp SynIC pages aren't allocated. Check for that and only then call iounmap(). Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 820711e

[PATCH hyperv-next v4 04/16] arch/x86: mshyperv: Trap on access for some synthetic MSRs

2025-07-14 Thread Roman Kisel
it. Update the hv_set_non_nested_msr() function as well as vmbus_signal_eom() to trap on access for some synthetic MSRs. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- arch/x86/kernel/cpu/mshyperv.c | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a

[PATCH hyperv-next v4 03/16] arch: hyperv: Get/set SynIC synth.registers via paravisor

2025-07-14 Thread Roman Kisel
isor. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- arch/x86/kernel/cpu/mshyperv.c | 39 ++ drivers/hv/hv_common.c | 13 ++ include/asm-generic/mshyperv.h | 75 ++ 3 files changed, 92 insertions(+), 35 deletions(-) diff --g

[PATCH hyperv-next v4 02/16] drivers: hv: VMBus protocol version 6.0

2025-07-14 Thread Roman Kisel
The confidential VMBus is supported starting from the protocol version 6.0 onwards. Update the relevant definitions, and provide a function that returns whether VMBus is confidential or not. No functional changes. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- drivers/hv/vmbus_drv.c

[PATCH hyperv-next v4 01/16] Documentation: hyperv: Confidential VMBus

2025-07-14 Thread Roman Kisel
Define what the confidential VMBus is and describe what advantages it offers on the capable hardware. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- Documentation/virt/hyperv/coco.rst | 140 - 1 file changed, 139 insertions(+), 1 deletion(-) diff --git a

[PATCH hyperv-next v4 00/16] Confidential VMBus

2025-07-14 Thread Roman Kisel
you, Christoph, Dexuan, Dan, Michael, James, Robin! ** [V1] https://lore.kernel.org/linux-hyperv/20250409000835.285105-1-rom...@linux.microsoft.com/ Roman Kisel (16): Documentation: hyperv: Confidential VMBus drivers: hv: VMBus protocol version 6.0 arch: hyperv: Get/set SynIC synth.r

[PATCH hyperv-next v3 04/15] arch/x86: mshyperv: Trap on access for some synthetic MSRs

2025-06-03 Thread Roman Kisel
synthetic MSRs. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- arch/x86/kernel/cpu/mshyperv.c | 23 +++ 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c index 83a85d94bcb3..db6f3e3db012 100644

[PATCH hyperv-next v3 07/15] Drivers: hv: Post messages via the confidential VMBus if available

2025-06-03 Thread Roman Kisel
When the confidential VMBus is available, the guest should post messages via the paravisor. Update hv_post_message() to request posting messages from the paravisor rather than through GHCB or TD calls. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH hyperv-next v3 15/15] Drivers: hv: Set the default VMBus version to 6.0

2025-06-03 Thread Roman Kisel
The confidential VMBus is supported by the protocol version 6.0 onwards. Attempt to establish the VMBus 6.0 connection thus enabling the confidential VMBus features when available. Signed-off-by: Roman Kisel --- drivers/hv/connection.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion

[PATCH hyperv-next v3 02/15] drivers: hv: VMBus protocol version 6.0

2025-06-03 Thread Roman Kisel
The confidential VMBus is supported starting from the protocol version 6.0 onwards. Update the relevant definitions, and provide a function that returns whether VMBus is confidential or not. No functional changes. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- drivers/hv/vmbus_drv.c

[PATCH hyperv-next v3 09/15] Drivers: hv: Use memunmap() to check if the address is in IO map

2025-06-03 Thread Roman Kisel
It might happen that some hyp SynIC pages aren't IO mapped. Use memunmap() that checks for that and only then calls iounmap() Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c

[PATCH hyperv-next v3 14/15] Drivers: hv: Support establishing the confidential VMBus connection

2025-06-03 Thread Roman Kisel
To establish the confidential VMBus connection the CoCo VM guest first attempts to connect to the VMBus server run by the paravisor. If that fails, the guest falls back to the non-confidential VMBus. Implement that in the VMBus driver initialization. Signed-off-by: Roman Kisel --- drivers/hv

[PATCH hyperv-next v3 12/15] Drivers: hv: Allocate encrypted buffers when requested

2025-06-03 Thread Roman Kisel
Confidential VMBus is built around using buffers not shared with the host. Support allocating encrypted buffers when requested. Signed-off-by: Roman Kisel --- drivers/hv/channel.c | 43 +++ drivers/hv/hyperv_vmbus.h | 3 ++- drivers/hv/ring_buffer.c

[PATCH hyperv-next v3 11/15] Drivers: hv: Functions for setting up and tearing down the paravisor SynIC

2025-06-03 Thread Roman Kisel
The confidential VMBus runs with the paravisor SynIC and requires configuring it with the paravisor. Add the functions for configuring the paravisor SynIC Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 180 +--- 1 file changed, 169 insertions

[PATCH hyperv-next v3 13/15] Drivers: hv: Support confidential VMBus channels

2025-06-03 Thread Roman Kisel
To run a confidential VMBus channels, one has to initialize the co_ring_buffers and co_external_memory fields of the channel structure. Advertise support upon negoatiating the version and compute values for those fields and initialize them. Signed-off-by: Roman Kisel --- drivers/hv

[PATCH hyperv-next v3 08/15] Drivers: hv: remove stale comment

2025-06-03 Thread Roman Kisel
The comment about the x2v shim is ancient and long since incorrect. Remove the incorrect comment. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 1f7cf1244509..6a4857def82d 100644

[PATCH hyperv-next v3 10/15] Drivers: hv: Rename the SynIC enable and disable routines

2025-06-03 Thread Roman Kisel
The confidential VMBus requires support for the both hypervisor facing SynIC and the paravisor one. Rename the functions that enable and disable SynIC with the hypervisor. Signed-off-by: Roman Kisel --- drivers/hv/channel_mgmt.c | 2 +- drivers/hv/hv.c | 11 ++- drivers/hv

[PATCH hyperv-next v3 05/15] Drivers: hv: Rename fields for SynIC message and event pages

2025-06-03 Thread Roman Kisel
changed in mshv_root.* for consistency. Signed-off-by: Roman Kisel --- drivers/hv/channel_mgmt.c | 6 ++-- drivers/hv/hv.c | 66 +++ drivers/hv/hyperv_vmbus.h | 4 +-- drivers/hv/mshv_root.h| 2 +- drivers/hv/mshv_synic.c | 6 ++-- drivers/hv

[PATCH hyperv-next v3 06/15] Drivers: hv: Allocate the paravisor SynIC pages when required

2025-06-03 Thread Roman Kisel
The paravisor needs the SynIC pages to communicate with the guest via the confidential VMBus. Refactor and extaned the exisitng code to account for that. Signed-off-by: Roman Kisel --- drivers/hv/hv.c | 184 +++--- drivers/hv/hyperv_vmbus.h | 17

[PATCH hyperv-next v3 03/15] arch: hyperv: Get/set SynIC synth.registers via paravisor

2025-06-03 Thread Roman Kisel
The confidential VMBus is built on the guest talking to the paravisor only. Provide functions that allow manipulating the SynIC registers via paravisor. No functional changes. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- arch/x86/kernel/cpu/mshyperv.c | 44

[PATCH hyperv-next v3 01/15] Documentation: hyperv: Confidential VMBus

2025-06-03 Thread Roman Kisel
Define what the confidential VMBus is and describe what advantages it offers on the capable hardware. Signed-off-by: Roman Kisel Reviewed-by: Alok Tiwari --- Documentation/virt/hyperv/coco.rst | 125 - 1 file changed, 124 insertions(+), 1 deletion(-) diff --git a

[PATCH hyperv-next v3 00/15] Confidential VMBus

2025-06-03 Thread Roman Kisel
//lore.kernel.org/linux-hyperv/20250409000835.285105-1-rom...@linux.microsoft.com/ Roman Kisel (15): Documentation: hyperv: Confidential VMBus drivers: hv: VMBus protocol version 6.0 arch: hyperv: Get/set SynIC synth.registers via paravisor arch/x86: mshyperv: Trap on access for some synthetic MSRs Driver

RE: [PATCH hyperv-next v2 1/4] Documentation: hyperv: Confidential VMBus

2025-05-26 Thread Roman Kisel
> From: Roman Kisel Sent: Sunday, May 11, 2025 > 4:08 PM >> >> Define what the confidential VMBus is and describe what advantages >> it offers on the capable hardware. >> >> Signed-off-by: Roman Kisel >> --- >> Documentation/virt/hyperv/vmbus.r

Re: [PATCH hyperv-next v2 4/4] arch: x86, drivers: hyperv: Enable confidential VMBus

2025-05-13 Thread Roman Kisel
On 5/12/2025 6:13 AM, ALOK TIWARI wrote: On 12-05-2025 04:37, Roman Kisel wrote: Confidential VMBus employs the paravisor SynIC pages to implement the control plane of the protocol, and the data plane may use encrypted pages. Implement scanning the additional pages in the control plane

Re: [PATCH hyperv-next v2 2/4] drivers: hyperv: VMBus protocol version 6.0

2025-05-13 Thread Roman Kisel
On 5/12/2025 2:49 AM, ALOK TIWARI wrote: On 12-05-2025 04:37, Roman Kisel wrote: The confidential VMBus is supported starting from the protocol version 6.0 onwards. Update the relevant definitions, provide a function that returns whether VMBus is condifential or not. typo condifential

Re: [PATCH hyperv-next v2 1/4] Documentation: hyperv: Confidential VMBus

2025-05-13 Thread Roman Kisel
On 5/11/2025 10:22 PM, ALOK TIWARI wrote: On 12-05-2025 04:37, Roman Kisel wrote: Define what the confidential VMBus is and describe what advantages it offers on the capable hardware. Signed-off-by: Roman Kisel ---   Documentation/virt/hyperv/vmbus.rst | 41

Re: [PATCH hyperv-next v2 3/4] arch: hyperv: Get/set SynIC synth.registers via paravisor

2025-05-13 Thread Roman Kisel
On 5/12/2025 2:39 AM, ALOK TIWARI wrote: On 12-05-2025 04:37, Roman Kisel wrote: +/* + * Not every paravisor supports getting SynIC registers, and + * this function may fail. The caller has to make sure that this function + * runs on the CPU of interest. + */ Title and Intent: Clearly

[PATCH hyperv-next v2 4/4] arch: x86, drivers: hyperv: Enable confidential VMBus

2025-05-11 Thread Roman Kisel
) unconditionally. Signed-off-by: Roman Kisel --- arch/x86/kernel/cpu/mshyperv.c | 23 +- drivers/hv/channel.c | 36 +-- drivers/hv/channel_mgmt.c | 29 +- drivers/hv/connection.c| 10 +- drivers/hv/hv.c| 485 - drivers/hv

[PATCH hyperv-next v2 3/4] arch: hyperv: Get/set SynIC synth.registers via paravisor

2025-05-11 Thread Roman Kisel
The confidential VMBus is built on the guest talking to the paravisor only. Provide functions that allow manipulating the SynIC registers via paravisor. Signed-off-by: Roman Kisel --- arch/arm64/hyperv/mshyperv.c | 19 +++ arch/arm64/include/asm/mshyperv.h | 3 +++ arch

[PATCH hyperv-next v2 2/4] drivers: hyperv: VMBus protocol version 6.0

2025-05-11 Thread Roman Kisel
The confidential VMBus is supported starting from the protocol version 6.0 onwards. Update the relevant definitions, provide a function that returns whether VMBus is condifential or not. Signed-off-by: Roman Kisel --- drivers/hv/vmbus_drv.c | 12 ++ include/asm-generic/mshyperv.h

[PATCH hyperv-next v2 1/4] Documentation: hyperv: Confidential VMBus

2025-05-11 Thread Roman Kisel
Define what the confidential VMBus is and describe what advantages it offers on the capable hardware. Signed-off-by: Roman Kisel --- Documentation/virt/hyperv/vmbus.rst | 41 + 1 file changed, 41 insertions(+) diff --git a/Documentation/virt/hyperv/vmbus.rst b

[PATCH hyperv-next v2 0/4] Confidential VMBus

2025-05-11 Thread Roman Kisel
the storage (for the simplicity sake) but not for the network. These changes might be proposed in the future again after revolving the issues. ** Thanks you, Christoph, Dexuan, Dan, Michael, James, Robin! ** [V1] https://lore.kernel.org/linux-hyperv/20250409000835.285105-1-rom...@linux.m

[PATCH hyperv-next 1/6] Documentation: hyperv: Confidential VMBus

2025-04-10 Thread Roman Kisel
Define what the confidential VMBus is and describe what advantages it offers on the capable hardware. Signed-off-by: Roman Kisel --- Documentation/virt/hyperv/vmbus.rst | 41 + 1 file changed, 41 insertions(+) diff --git a/Documentation/virt/hyperv/vmbus.rst b

[PATCH hyperv-next 0/6] Confidential VMBus

2025-04-10 Thread Roman Kisel
locating and freeing in `hv.c`, - John and Sven for the design, - Mike for helping to avoid pitfalls when dealing with the GFP flags, - Sven for blazing the trail and implementing the design in few codebases. Roman Kisel (6): Documentation: hyperv: Confidential VMBus drivers: hyperv: VMBus pr

Re: [PATCH hyperv-next 1/6] Documentation: hyperv: Confidential VMBus

2025-04-10 Thread Roman Kisel
On 4/10/2025 9:54 AM, ALOK TIWARI wrote: [...] typo trsuted  -> trusted +To support confidential communication with the paravisor, a VmBus client +will first attempt to use regular, non-isolated mechanisms for communication. +To do this, it must: Thanks for your help with this p

Re: [PATCH hyperv-next 5/6] arch, drivers: Add device struct bitfield to not bounce-buffer

2025-04-10 Thread Roman Kisel
On 4/10/2025 12:21 AM, Christoph Hellwig wrote: On Wed, Apr 09, 2025 at 09:44:03AM -0700, Roman Kisel wrote: Do you feel this is shoehorned in `struct device`? I couldn't find an appropriate private (== opaque pointer) part in the structure to store that bit (`struct device_private` wou

Re: [PATCH hyperv-next 5/6] arch, drivers: Add device struct bitfield to not bounce-buffer

2025-04-09 Thread Roman Kisel
On 4/9/2025 3:52 AM, Christoph Hellwig wrote: On Tue, Apr 08, 2025 at 05:08:34PM -0700, Roman Kisel wrote: Bounce-buffering makes the system spend more time copying I/O data. When the I/O transaction take place between a confidential and a non-confidential endpoints, there is no other way

Re: [PATCH hyperv-next 5/6] arch, drivers: Add device struct bitfield to not bounce-buffer

2025-04-09 Thread Roman Kisel
On 4/9/2025 9:03 AM, Robin Murphy wrote: On 2025-04-09 1:08 am, Roman Kisel wrote: Bounce-buffering makes the system spend more time copying I/O data. When the I/O transaction take place between a confidential and a non-confidential endpoints, there is no other way around. Introduce a

Re: [PATCH hyperv-next 6/6] drivers: SCSI: Do not bounce-bufffer for the confidential VMBus

2025-04-09 Thread Roman Kisel
On 4/9/2025 3:53 AM, Christoph Hellwig wrote: On Tue, Apr 08, 2025 at 05:08:35PM -0700, Roman Kisel wrote: The device bit that indicates that the device is capable of I/O with private pages lets avoid excessive copying in the Hyper-V SCSI driver. Set that bit equal to the confidential

[PATCH hyperv-next 5/6] arch, drivers: Add device struct bitfield to not bounce-buffer

2025-04-08 Thread Roman Kisel
. The capable device may employ it to save on copying data around. Signed-off-by: Roman Kisel --- arch/x86/mm/mem_encrypt.c | 3 +++ include/linux/device.h | 8 include/linux/dma-direct.h | 3 +++ include/linux/swiotlb.h| 3 +++ 4 files changed, 17 insertions(+) diff --git a/arch/x

[PATCH hyperv-next 4/6] arch: x86, drivers: hyperv: Enable confidential VMBus

2025-04-08 Thread Roman Kisel
) unconditionally. Signed-off-by: Roman Kisel --- arch/x86/kernel/cpu/mshyperv.c | 23 +- drivers/hv/channel.c | 36 +-- drivers/hv/channel_mgmt.c | 29 +- drivers/hv/connection.c| 10 +- drivers/hv/hv.c| 485 - drivers/hv

[PATCH hyperv-next 6/6] drivers: SCSI: Do not bounce-bufffer for the confidential VMBus

2025-04-08 Thread Roman Kisel
The device bit that indicates that the device is capable of I/O with private pages lets avoid excessive copying in the Hyper-V SCSI driver. Set that bit equal to the confidential external memory one to not bounce buffer Signed-off-by: Roman Kisel --- drivers/scsi/storvsc_drv.c | 2 ++ 1 file

[PATCH hyperv-next 2/6] drivers: hyperv: VMBus protocol version 6.0

2025-04-08 Thread Roman Kisel
The confidential VMBus is supported starting from the protocol version 6.0 onwards. Update the relevant definitions, provide a function that returns whether VMBus is condifential or not. Signed-off-by: Roman Kisel --- drivers/hv/vmbus_drv.c | 12 ++ include/asm-generic/mshyperv.h

[PATCH hyperv-next 3/6] arch: hyperv: Get/set SynIC synth.registers via paravisor

2025-04-08 Thread Roman Kisel
The confidential VMBus is built on the guest talking to the paravisor only. Provide functions that allow manipulating the SynIC registers via paravisor. Signed-off-by: Roman Kisel --- arch/arm64/hyperv/mshyperv.c | 19 +++ arch/arm64/include/asm/mshyperv.h | 3 +++ arch

Re: [PATCH v4 1/1] Documentation: hyperv: Add overview of guest VM hibernation

2025-01-14 Thread Roman Kisel
On 1/13/2025 6:56 AM, mhkelle...@gmail.com wrote: From: Michael Kelley [...] An incredible read, thank you, Michael! Reviewed-by: Roman Kisel diff --git a/Documentation/virt/hyperv/index.rst b/Documentation/virt/hyperv/index.rst index 79bc4080329e..c84c40fd61c9 100644 --- a

Re: [PATCH 1/1] Documentation: hyperv: Add overview of guest VM hibernation

2024-12-13 Thread Roman Kisel
On 12/12/2024 3:17 PM, mhkelle...@gmail.com wrote: From: Michael Kelley Add documentation on how hibernation works in a guest VM on Hyper-V. Describe how VMBus devices and the VMBus itself are hibernated and resumed, along with various limitations. Signed-off-by: Michael Kelley --- Document