From 5d08f2518f68aa786e7dbea69d554ac4e508ca55 Mon Sep 17 00:00:00 2001 From: Geoffroy Van Cutsem Date: Wed, 10 Jun 2020 15:46:16 +0200 Subject: [PATCH] doc: update the 'ivshmem' HLD Update the 'ivshmem' document to clarify the existence of two similar mechanisms to expose this device to User VMs. One is implemented in the ACRN Device Model and another (future) is implemented in the hypervisor. Signed-off-by: Geoffroy Van Cutsem --- .../hld/images/ivshmem-architecture.png | Bin 0 -> 86816 bytes .../hld/images/ivshmem-image1.png | Bin 40328 -> 0 bytes doc/developer-guides/hld/ivshmem-hld.rst | 25 +++++++++++------- 3 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 doc/developer-guides/hld/images/ivshmem-architecture.png delete mode 100644 doc/developer-guides/hld/images/ivshmem-image1.png diff --git a/doc/developer-guides/hld/images/ivshmem-architecture.png b/doc/developer-guides/hld/images/ivshmem-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..0e62cfb5cf669f3dad4df30e2cb3a4d1ec605d45 GIT binary patch literal 86816 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 BQhNXZ diff --git a/doc/developer-guides/hld/ivshmem-hld.rst b/doc/developer-guides/hld/ivshmem-hld.rst index c7c8ab49e..e94f5d13a 100644 --- a/doc/developer-guides/hld/ivshmem-hld.rst +++ b/doc/developer-guides/hld/ivshmem-hld.rst @@ -4,14 +4,14 @@ ACRN Shared Memory Based Inter-VM Communication ############################################### ACRN supports inter-virtual machine communication based on a shared -memory mechanism, The ACRN device model and hypervisor emulate a virtual +memory mechanism. The ACRN device model or hypervisor emulate a virtual PCI device (called an ``ivshmem`` device) to expose the base address and size of this shared memory. Inter-VM Communication Overview ******************************* -.. figure:: images/ivshmem-image1.png +.. figure:: images/ivshmem-architecture.png :align: center :name: ivshmem-architecture-overview @@ -27,15 +27,19 @@ VMs. memory regions reserved in the hypervisor's memory space. This solution would work for both pre-launched and post-launched VMs. - ivshmem hv: - The ivshmem device model implements register virtualization - and shared memory mapping in the hypervisor (not the acrn-dm). - Will support notification/interrupt mechanism in the future. + The **ivshmem hv** implements register virtualization + and shared memory mapping in the ACRN hypervisor. + It will support notification/interrupt mechanism in the future. + +ivshmem dm: + The **ivshmem dm** implements register virtualization + and shared memory mapping in the ACRN Device Model (``acrn-dm``). + It will support notification/interrupt mechanism in the future. ivshmem server: - A daemon for inter-VM notification capability, - This is currently **not implemented**, so the inter-VM communication + A daemon for inter-VM notification capability, that will work with **ivshmem + dm**. This is currently **not implemented**, so the inter-VM communication doesn't support a notification mechanism. Ivshmem Device Introduction @@ -96,7 +100,7 @@ Usage ***** To support two post-launched VMs communicating via an ``ivshmem`` device, -add this line as an acrn-dm boot parameter:: +add this line as an ``acrn-dm`` boot parameter:: -s slot,ivshmem,shm_name,shm_size @@ -112,6 +116,7 @@ where - ``shm_size`` - Specify a shared memory size. The two communicating VMs must define the same size. +.. note:: This device can be used with Real-Time VM (RTVM) as well. Inter-VM Communication Example ****************************** @@ -119,6 +124,8 @@ Inter-VM Communication Example The following example uses inter-vm communication between two Linux-based post-launched VMs (VM1 and VM2). +.. note:: An ``ivshmem`` Windows driver exists and can be found `here `_ + 1. Add a new virtual PCI device for both VMs: the device type is ``ivshmem``, shared memory name is ``test`` and shared memory size is 4096 bytes. Both VMs must have the same shared memory name and size: