SlideShare a Scribd company logo
Shared Memory Based Inter-VM
Communication Introduction
Chen Jian Jun <jian.jun.chen@intelcom>
ACRN vMeet-Up Europe 2021
Agenda
▹Ivshmem Overview
▹Ivshmem DM-Land Introduction
▹Ivshmem HV-Land Introduction
▹Ivshmem Usage
Ivshmem Overview
▹Shared memory is exposed to guest VM as a PCI BAR
▹Shared memory is allocated from host or hypervisor
▹Two device types
▹ Ivshmem-plain: just shared memory
▹ Ivshmem-doorbell: shared memory plus interrupts
▹Linux guests can use UIO driver to probe the device
▹Windows guests can use dedicated driver to communicate with the
device
Ivshmem Device BAR Description
Offset Register Attr Comments
BAR 0 00h Interrupt
Mask
RW Bit 0: peer interrupt (rev 0) reserved (rev 1)
Bits 1 ~ 31: reserved
(only for revision 0 when only INTx is supported)
04h Interrupt
Status
RW Bit 0: peer interrupt (rev 0) reserved (rev 1)
Bits 1 ~ 31: reserved
(only for revision 0 when only INTx is supported)
08h IVPosition RO If the device is not configured for interrupts, this is zero.
Else, it is the device's ID (between 0 and 65535).
0Ch Doorbell Write Triggers an interrupt vector in the target device
Bits 0 ~ 15 Vector Number
Bits 16 ~ 31 Target ID
10h - FFh Reserved None
BAR 1 Holds MSI-X table and PBA (only ivshmem-doorbell)
BAR 2 Maps the shared memory object
Design Philosophy
▹Inter-VM applications are compatible between KVM and ACRN.
▹Reuse existing drivers for Linux/Windows guest.
▹Consistent with the development direction of the KVM community.
ACRN Ivshmem DM-Land Architecture
▹ Backend
▹ Initialization: shared
memory allocation
▹ Ivshmem Device
emulated in acrn-dm
▹ Frontend
▹ Linux: user-land driver
based on UIO
interface
▹ Windows: reference
driver
ACRN Ivshmem HV-Land Architecture
▹ Ivshmem vdev
▹ Emulated in ACRN hypervisor
▹ Device creation
▹ Pre-launched VM: ACRN Config Tool
▹ Post-Launched VM: New hypercall for creating hv-land
virtual pci device.
▹ Device attributes
▹ vBDF
▹ vBARs
▹ Device specific: shared memory path format is
“domain://name”(domain field indicates the region is
allocate from “hv” or “sos” that specified by the user)
▹ Shared memory pool
▹ Reserved and managed in HV
▹ Region creation
▹ Through ACRN config tool to create each region.
▹ Memory reservation: ACRN config tool configures regions’
name and size
▹ Region attributes
▹ Name: region identifier
▹ HPA: region base address
▹ Size: region size
Ivshmem DM-Land Vs. HV-Land
▹The DM-Land ivshmem device is emulated in the ACRN device model and
the shared memory regions are reserved in the Service VM's memory
space. This solution only supports communication between post-
launched VMs.
▹The HV-Land ivshmem device is emulated in the hypervisor and the
shared memory regions are reserved in the hypervisor's memory space.
This solution works for both pre-launched and post-launched VMs.
▹While both solutions can be used at the same time, Inter-VM
communication may only be done between VMs using the same solution.
Solution Device Emulation Memory Supported VM Types
DM-Land Device Model Service VM Only Post-launched VM
HV-Land Hypervisor Hypervisor Pre-launched VM and Post-launched VM
ACRN Ivshmem Overview
▹ Backend
▹ Initialization: shared
memory allocation
▹ Ivshmem Device
emulated in acrn-dm
▹ Frontend
▹ Linux: user-land driver
based on UIO interface
▹ Windows: reference
driver
dm-land flow hypervisor-land flow
UIO (User Space I/O) Introduction
▹ Shared Memory API
▹ Use mmap to access registers or RAM
▹ Use read/write/select for interrupts.
▹ Two Types Drivers
▹ Generic PCI UIO Driver
▹ Specific PCI Device Driver
Ivshmem HV-Land Limitations
▹The shared memory is reserved and cannot be reclaimed by the
system.
▹The shared memory size is fixed, determined at build time.
▹The ownership of all regions are determined at build time, it is not
possible to change their assignments at runtime.
ACRN Ivshmem Usage
Add this line as an acrn-dm boot parameter
-s slot,ivshmem,shm_name,shm_size
-s slot - Specify the virtual PCI slot number
ivshmem - Virtual PCI device name
shm_name - Specify a shared memory name. VMs with the same shm_name share a shared memory region. The shm_name needs to start with
dm:/ prefix or hv:/ prefix.
shm_size - Specify a shared memory size. The unit is megabyte. The size ranges from 2 megabytes to 512 megabytes and must be a power of 2
megabytes. The two communicating VMs must define the same size.
DM-Land Example:
acrn-dm -A -m $mem_size -s 0:0,hostbridge 
-s 3,virtio-blk,/home/acrn/uos1.img 
-s 4,virtio-net,tap0 
-s 5,ivshmem,dm:/shm_region_0,2 
--ovmf /usr/share/acrn/bios/OVMF.fd 
$vm_name
HV-Land Example:
acrn-dm -A -m $mem_size -s 0:0,hostbridge 
-s 3,virtio-blk,/home/acrn/uos2.img 
-s 4,virtio-net,tap1 
-s 5,ivshmem,hv:/shm_region_0,2 
--ovmf /usr/share/acrn/bios/OVMF.fd 
$vm_name
ACRN Ivshmem Usage
Ivshmem Hv-Land solution is disabled by default in ACRN. User enables it using the ACRN configuration tool
1. Edit IVSHMEM_ENABLED to y in ACRN config tool to enable ivshmem hv-land
2. Edit IVSHMEM_REGION to specify the shared memory name, size and communication VMs. The
IVSHMEM_REGION format is shm_name,shm_size,VM IDs:
• shm_name - Specify a shared memory name
• shm_size - Specify a shared memory size
• VM IDs - Specify the VM IDs to use the same shared memory communication and separate it with “:” .For example,
the communication between VM0 and VM2, it can be written as 0:2
You can double check the generated scenario xml to make sure ivshmem is configurated correctly:
ACRN Ivshmem Usage
1. Boot VM and use lspci | grep "shared memory” to verify that the virtual device is ready
for the VM.
00:06.0 RAM memory: Red Hat, Inc. Inter-VM shared memory (rev 01)
2. Use these commands to probe the device
3. Finally, user application can get the shared memory base address from the ivshmem device BAR
resource and the shared memory size from the ivshmem device config resource.
/sys/class/uio/uioX/device/config → PCI Device Configuration Space
/sys/class/uio/uioX/device/resource0 → Ivshmem Device Registers BAR
/sys/class/uio/uioX/device/resource1 → Ivshmem Device MSI-X BAR
/sys/class/uio/uioX/device/resource2 → Ivshmem Shared Memory
$ sudo modprobe uio
$ sudo modprobe uio_pci_generic
$ sudo echo "1af4 1110“ > /sys/bus/pci/drivers/uio_pci_generic/new_id
Vendor ID : 1af4 - Red Hat, Inc
Device ID:
1041 Virtio network device
1042 Virtio block device
1043 Virtio console
...
1110 Inter-VM shared memory
Thank You

More Related Content

What's hot

Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能
Masanori Nara
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
Adrien Mahieux
 
NFVについて
NFVについてNFVについて
NFVについて
Naoto Umemori
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
 
RISC-Vの可能性
RISC-Vの可能性RISC-Vの可能性
RISC-Vの可能性
たけおか しょうぞう
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
plarsen67
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
vivekkonnect
 
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル) 無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル)
Yuki Uchikoba
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会Etsuji Nakai
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
Yamato Tanaka
 
他山の石勉強会 DRBD編
他山の石勉強会 DRBD編他山の石勉強会 DRBD編
他山の石勉強会 DRBD編
tkomachi
 
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Qt
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor Benchmarking
Brendan Gregg
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
プロセスとコンテキストスイッチ
プロセスとコンテキストスイッチプロセスとコンテキストスイッチ
プロセスとコンテキストスイッチ
Kazuki Onishi
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
Dominique Cimafranca
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
Yoichi Kawasaki
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 

What's hot (20)

Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
NFVについて
NFVについてNFVについて
NFVについて
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
 
RISC-Vの可能性
RISC-Vの可能性RISC-Vの可能性
RISC-Vの可能性
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル) 無線LANデバイスについて(kernelレベル)
無線LANデバイスについて(kernelレベル)
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
他山の石勉強会 DRBD編
他山の石勉強会 DRBD編他山の石勉強会 DRBD編
他山の石勉強会 DRBD編
 
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Learn how to addressing medical and industrial challenges with BlackBerry QNX...
Learn how to addressing medical and industrial challenges with BlackBerry QNX...
 
IntelON 2021 Processor Benchmarking
IntelON 2021 Processor BenchmarkingIntelON 2021 Processor Benchmarking
IntelON 2021 Processor Benchmarking
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
プロセスとコンテキストスイッチ
プロセスとコンテキストスイッチプロセスとコンテキストスイッチ
プロセスとコンテキストスイッチ
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 

Similar to ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction

Linaro connect : Introduction to Xen on ARM
Linaro connect : Introduction to Xen on ARMLinaro connect : Introduction to Xen on ARM
Linaro connect : Introduction to Xen on ARM
The Linux Foundation
 
ACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introductionACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introduction
Project ACRN
 
Virtual Pc Seminar
Virtual Pc SeminarVirtual Pc Seminar
Virtual Pc Seminar
guest5b5549
 
VMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices PosterVMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices Poster
VMware Academy
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
Deepti Ramakrishna
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linux
mountpoint.io
 
Vm ware server-tips-tricks
Vm ware server-tips-tricksVm ware server-tips-tricks
Vm ware server-tips-tricks
unixadminrasheed
 
Vmwareserver tips-tricks-110218231744-phpapp01
Vmwareserver tips-tricks-110218231744-phpapp01Vmwareserver tips-tricks-110218231744-phpapp01
Vmwareserver tips-tricks-110218231744-phpapp01
Suresh Kumar
 
luminnon_core_virtual_graphix
luminnon_core_virtual_graphixluminnon_core_virtual_graphix
luminnon_core_virtual_graphix
Lin JiaBang 林家邦
 
LCA13: Xen on ARM
LCA13: Xen on ARMLCA13: Xen on ARM
LCA13: Xen on ARM
Linaro
 
BSides Denver: Stealthy, hypervisor-based malware analysis
BSides Denver: Stealthy, hypervisor-based malware analysisBSides Denver: Stealthy, hypervisor-based malware analysis
BSides Denver: Stealthy, hypervisor-based malware analysis
Tamas K Lengyel
 
Chapter 5 – Cloud Resource Virtua.docx
Chapter 5 – Cloud Resource                        Virtua.docxChapter 5 – Cloud Resource                        Virtua.docx
Chapter 5 – Cloud Resource Virtua.docx
madlynplamondon
 
Chapter 5 – Cloud Resource Virtua.docx
Chapter 5 – Cloud Resource                        Virtua.docxChapter 5 – Cloud Resource                        Virtua.docx
Chapter 5 – Cloud Resource Virtua.docx
gertrudebellgrove
 
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
Casey Bisson
 
IaaS - Virtualization_Cambridge.pdf
IaaS - Virtualization_Cambridge.pdfIaaS - Virtualization_Cambridge.pdf
IaaS - Virtualization_Cambridge.pdf
DharavathRamesh2
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
Rabbah Adel Ammar
 
Project ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config toolProject ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config tool
Project ACRN
 
Tech X Virtualization Tips
Tech X Virtualization TipsTech X Virtualization Tips
Tech X Virtualization Tips
Youssef EL HADJ
 
Live VM Migration
Live VM MigrationLive VM Migration
Live VM Migration
Shivam Singh
 
Android tools for testers
Android tools for testersAndroid tools for testers
Android tools for testers
Maksim Kovalev
 

Similar to ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction (20)

Linaro connect : Introduction to Xen on ARM
Linaro connect : Introduction to Xen on ARMLinaro connect : Introduction to Xen on ARM
Linaro connect : Introduction to Xen on ARM
 
ACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introductionACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introduction
 
Virtual Pc Seminar
Virtual Pc SeminarVirtual Pc Seminar
Virtual Pc Seminar
 
VMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices PosterVMware End-User-Computing Best Practices Poster
VMware End-User-Computing Best Practices Poster
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
Current and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on LinuxCurrent and Future of Non-Volatile Memory on Linux
Current and Future of Non-Volatile Memory on Linux
 
Vm ware server-tips-tricks
Vm ware server-tips-tricksVm ware server-tips-tricks
Vm ware server-tips-tricks
 
Vmwareserver tips-tricks-110218231744-phpapp01
Vmwareserver tips-tricks-110218231744-phpapp01Vmwareserver tips-tricks-110218231744-phpapp01
Vmwareserver tips-tricks-110218231744-phpapp01
 
luminnon_core_virtual_graphix
luminnon_core_virtual_graphixluminnon_core_virtual_graphix
luminnon_core_virtual_graphix
 
LCA13: Xen on ARM
LCA13: Xen on ARMLCA13: Xen on ARM
LCA13: Xen on ARM
 
BSides Denver: Stealthy, hypervisor-based malware analysis
BSides Denver: Stealthy, hypervisor-based malware analysisBSides Denver: Stealthy, hypervisor-based malware analysis
BSides Denver: Stealthy, hypervisor-based malware analysis
 
Chapter 5 – Cloud Resource Virtua.docx
Chapter 5 – Cloud Resource                        Virtua.docxChapter 5 – Cloud Resource                        Virtua.docx
Chapter 5 – Cloud Resource Virtua.docx
 
Chapter 5 – Cloud Resource Virtua.docx
Chapter 5 – Cloud Resource                        Virtua.docxChapter 5 – Cloud Resource                        Virtua.docx
Chapter 5 – Cloud Resource Virtua.docx
 
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
The lies we tell our code, LinuxCon/CloudOpen 2015-08-18
 
IaaS - Virtualization_Cambridge.pdf
IaaS - Virtualization_Cambridge.pdfIaaS - Virtualization_Cambridge.pdf
IaaS - Virtualization_Cambridge.pdf
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
 
Project ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config toolProject ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config tool
 
Tech X Virtualization Tips
Tech X Virtualization TipsTech X Virtualization Tips
Tech X Virtualization Tips
 
Live VM Migration
Live VM MigrationLive VM Migration
Live VM Migration
 
Android tools for testers
Android tools for testersAndroid tools for testers
Android tools for testers
 

More from Project ACRN

ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
Project ACRN
 
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure BootACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
Project ACRN
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
Project ACRN
 
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 -  functional safety design and certification planACRN vMeet-Up EU 2021 -  functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
Project ACRN
 
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development modelACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development model
Project ACRN
 
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enablingACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
Project ACRN
 
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance OptimizationACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
Project ACRN
 
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look ForwardACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
Project ACRN
 
ACRN Kata Container on ACRN
ACRN Kata Container on ACRNACRN Kata Container on ACRN
ACRN Kata Container on ACRN
Project ACRN
 
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introductionProject ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introduction
Project ACRN
 
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introductionProject ACRN I2C mediator introduction
Project ACRN I2C mediator introduction
Project ACRN
 
Project ACRN system debug
Project ACRN system debugProject ACRN system debug
Project ACRN system debug
Project ACRN
 
Project ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRNProject ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRN
Project ACRN
 
Project ACRN Device Model architecture introduction
Project ACRN Device Model architecture introductionProject ACRN Device Model architecture introduction
Project ACRN Device Model architecture introduction
Project ACRN
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
Project ACRN
 
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN
 
Project ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOSProject ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOS
Project ACRN
 
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
Project ACRN
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN
 

More from Project ACRN (20)

ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
 
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure BootACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
 
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 -  functional safety design and certification planACRN vMeet-Up EU 2021 -  functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
 
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development modelACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development model
 
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enablingACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
 
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance OptimizationACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
 
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look ForwardACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
 
ACRN Kata Container on ACRN
ACRN Kata Container on ACRNACRN Kata Container on ACRN
ACRN Kata Container on ACRN
 
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introductionProject ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introduction
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introduction
 
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introductionProject ACRN I2C mediator introduction
Project ACRN I2C mediator introduction
 
Project ACRN system debug
Project ACRN system debugProject ACRN system debug
Project ACRN system debug
 
Project ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRNProject ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRN
 
Project ACRN Device Model architecture introduction
Project ACRN Device Model architecture introductionProject ACRN Device Model architecture introduction
Project ACRN Device Model architecture introduction
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
 
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
 
Project ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOSProject ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOS
 
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
 
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOSProject ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
 

Recently uploaded

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 

Recently uploaded (20)

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 

ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction

  • 1. Shared Memory Based Inter-VM Communication Introduction Chen Jian Jun <jian.jun.chen@intelcom> ACRN vMeet-Up Europe 2021
  • 2. Agenda ▹Ivshmem Overview ▹Ivshmem DM-Land Introduction ▹Ivshmem HV-Land Introduction ▹Ivshmem Usage
  • 3. Ivshmem Overview ▹Shared memory is exposed to guest VM as a PCI BAR ▹Shared memory is allocated from host or hypervisor ▹Two device types ▹ Ivshmem-plain: just shared memory ▹ Ivshmem-doorbell: shared memory plus interrupts ▹Linux guests can use UIO driver to probe the device ▹Windows guests can use dedicated driver to communicate with the device
  • 4. Ivshmem Device BAR Description Offset Register Attr Comments BAR 0 00h Interrupt Mask RW Bit 0: peer interrupt (rev 0) reserved (rev 1) Bits 1 ~ 31: reserved (only for revision 0 when only INTx is supported) 04h Interrupt Status RW Bit 0: peer interrupt (rev 0) reserved (rev 1) Bits 1 ~ 31: reserved (only for revision 0 when only INTx is supported) 08h IVPosition RO If the device is not configured for interrupts, this is zero. Else, it is the device's ID (between 0 and 65535). 0Ch Doorbell Write Triggers an interrupt vector in the target device Bits 0 ~ 15 Vector Number Bits 16 ~ 31 Target ID 10h - FFh Reserved None BAR 1 Holds MSI-X table and PBA (only ivshmem-doorbell) BAR 2 Maps the shared memory object
  • 5. Design Philosophy ▹Inter-VM applications are compatible between KVM and ACRN. ▹Reuse existing drivers for Linux/Windows guest. ▹Consistent with the development direction of the KVM community.
  • 6. ACRN Ivshmem DM-Land Architecture ▹ Backend ▹ Initialization: shared memory allocation ▹ Ivshmem Device emulated in acrn-dm ▹ Frontend ▹ Linux: user-land driver based on UIO interface ▹ Windows: reference driver
  • 7. ACRN Ivshmem HV-Land Architecture ▹ Ivshmem vdev ▹ Emulated in ACRN hypervisor ▹ Device creation ▹ Pre-launched VM: ACRN Config Tool ▹ Post-Launched VM: New hypercall for creating hv-land virtual pci device. ▹ Device attributes ▹ vBDF ▹ vBARs ▹ Device specific: shared memory path format is “domain://name”(domain field indicates the region is allocate from “hv” or “sos” that specified by the user) ▹ Shared memory pool ▹ Reserved and managed in HV ▹ Region creation ▹ Through ACRN config tool to create each region. ▹ Memory reservation: ACRN config tool configures regions’ name and size ▹ Region attributes ▹ Name: region identifier ▹ HPA: region base address ▹ Size: region size
  • 8. Ivshmem DM-Land Vs. HV-Land ▹The DM-Land ivshmem device is emulated in the ACRN device model and the shared memory regions are reserved in the Service VM's memory space. This solution only supports communication between post- launched VMs. ▹The HV-Land ivshmem device is emulated in the hypervisor and the shared memory regions are reserved in the hypervisor's memory space. This solution works for both pre-launched and post-launched VMs. ▹While both solutions can be used at the same time, Inter-VM communication may only be done between VMs using the same solution. Solution Device Emulation Memory Supported VM Types DM-Land Device Model Service VM Only Post-launched VM HV-Land Hypervisor Hypervisor Pre-launched VM and Post-launched VM
  • 9. ACRN Ivshmem Overview ▹ Backend ▹ Initialization: shared memory allocation ▹ Ivshmem Device emulated in acrn-dm ▹ Frontend ▹ Linux: user-land driver based on UIO interface ▹ Windows: reference driver dm-land flow hypervisor-land flow
  • 10. UIO (User Space I/O) Introduction ▹ Shared Memory API ▹ Use mmap to access registers or RAM ▹ Use read/write/select for interrupts. ▹ Two Types Drivers ▹ Generic PCI UIO Driver ▹ Specific PCI Device Driver
  • 11. Ivshmem HV-Land Limitations ▹The shared memory is reserved and cannot be reclaimed by the system. ▹The shared memory size is fixed, determined at build time. ▹The ownership of all regions are determined at build time, it is not possible to change their assignments at runtime.
  • 12. ACRN Ivshmem Usage Add this line as an acrn-dm boot parameter -s slot,ivshmem,shm_name,shm_size -s slot - Specify the virtual PCI slot number ivshmem - Virtual PCI device name shm_name - Specify a shared memory name. VMs with the same shm_name share a shared memory region. The shm_name needs to start with dm:/ prefix or hv:/ prefix. shm_size - Specify a shared memory size. The unit is megabyte. The size ranges from 2 megabytes to 512 megabytes and must be a power of 2 megabytes. The two communicating VMs must define the same size. DM-Land Example: acrn-dm -A -m $mem_size -s 0:0,hostbridge -s 3,virtio-blk,/home/acrn/uos1.img -s 4,virtio-net,tap0 -s 5,ivshmem,dm:/shm_region_0,2 --ovmf /usr/share/acrn/bios/OVMF.fd $vm_name HV-Land Example: acrn-dm -A -m $mem_size -s 0:0,hostbridge -s 3,virtio-blk,/home/acrn/uos2.img -s 4,virtio-net,tap1 -s 5,ivshmem,hv:/shm_region_0,2 --ovmf /usr/share/acrn/bios/OVMF.fd $vm_name
  • 13. ACRN Ivshmem Usage Ivshmem Hv-Land solution is disabled by default in ACRN. User enables it using the ACRN configuration tool 1. Edit IVSHMEM_ENABLED to y in ACRN config tool to enable ivshmem hv-land 2. Edit IVSHMEM_REGION to specify the shared memory name, size and communication VMs. The IVSHMEM_REGION format is shm_name,shm_size,VM IDs: • shm_name - Specify a shared memory name • shm_size - Specify a shared memory size • VM IDs - Specify the VM IDs to use the same shared memory communication and separate it with “:” .For example, the communication between VM0 and VM2, it can be written as 0:2 You can double check the generated scenario xml to make sure ivshmem is configurated correctly:
  • 14. ACRN Ivshmem Usage 1. Boot VM and use lspci | grep "shared memory” to verify that the virtual device is ready for the VM. 00:06.0 RAM memory: Red Hat, Inc. Inter-VM shared memory (rev 01) 2. Use these commands to probe the device 3. Finally, user application can get the shared memory base address from the ivshmem device BAR resource and the shared memory size from the ivshmem device config resource. /sys/class/uio/uioX/device/config → PCI Device Configuration Space /sys/class/uio/uioX/device/resource0 → Ivshmem Device Registers BAR /sys/class/uio/uioX/device/resource1 → Ivshmem Device MSI-X BAR /sys/class/uio/uioX/device/resource2 → Ivshmem Shared Memory $ sudo modprobe uio $ sudo modprobe uio_pci_generic $ sudo echo "1af4 1110“ > /sys/bus/pci/drivers/uio_pci_generic/new_id Vendor ID : 1af4 - Red Hat, Inc Device ID: 1041 Virtio network device 1042 Virtio block device 1043 Virtio console ... 1110 Inter-VM shared memory