SlideShare a Scribd company logo
1 of 28
Download to read offline
Stefano Stabellini
VM-to-VM Communication
Mechanisms for Embedded
Existing VM-to-VM Communication Mechanisms
˃ Existing protocols: Xen PV Drivers, VirtIO
discoverable and dynamic
create new connections at runtime
made for IO virtualization
˃ A frontend in the guest connects to the
backend in Dom0 / hypervisor
˃ Created to virtualizedevices
˃ Typically based on memory sharing
˃ VirtIO expects privileged backends
>> 2
Xen
Dom0
Dom0
DomU
Frontend Backend
Hardware
Static Partitioning
Static Partitioning
˃ Static Partitioning is similar to virtualization with some key differences:
No dynamic VMs, a limited number of "partitions" instead
Focus on direct assignment of hardware resources
Configuration defined at "Build Time"
Real-Time, Safety, and Short Boot Times are often key requirements
˃ Example: Xen Dom0less
Xen Dom0less
U-Boot
Xen
Dom0 DomU 1 DomU 2
CPU CPU CPU
loads into memory
loads into memory
Xen Dom0less
U-Boot
Xen
Dom0 DomU 1 DomU 2
CPU CPU CPU
boots
boots
Xen Dom0less Current Status
˃ Static Partitions defined at build time
˃ Fast boot times, real-time support, easier to safety-certify
˃ Dom0 is not required
˃ No "out of the box" communication mechanisms available
Static Partitioning and Communication
˃ Often only VM-to-VM communication is required, not device virtualization
There are enough physical devices to directly assign them to VMs as needed
Device virtualization can be interesting for sharing an SD card among multiple VMs
˃ VM-to-VM communication is differentfrom device virtualization
A simple VM-to-VM channel to send and receive raw data
It doesn't need "frontends" and "backends"
It requires a smaller code base
It is faster for exchanging data but it is unwieldy for virtualizing devices
˃ Static definition of VM-to-VM communication channels
Define connections at "build time"
Required for safety
˃ No privileged backends
Required for safety
˃ Support Linux and non-Linux guests (Zephyr, FreeRTOS, WindRiver, QNX, etc.)
Static Partitioning VM-to-VM communication
˃ No privileged backends
Dom0 DomU 1 DomU 2
Hardware Device
Backend Frontend
Xen PV Drivers
˃ Solid and hardened in production for years (AWS)
˃ Made for device virtualization, can be used for communication:
Network
Block (disks)
Console
2D graphics, mouse and keyboard
Sound
Etc.
˃ Pros:
Very Fast Unprivileged Backends
Available for Linux, BSDs and Windows, less common among RTOSes
˃ Cons:
Might not be available in certain embedded RTOSes (but BSD versions exist for all PV drivers)
Dom0less support is work-in-progress
Xen PV Drivers and Dom0less
>> 11
U-Boot
Xen
Dom0
DomU 1 DomU 2
CPU CPU CPU
Dom0
Backend Frontend
xl
Xen PV Drivers and Dom0less
˃ Domains booted in parallel
˃ PV Drivers connections created after Dom0 is up and running
˃ Advantages compared to regular non-Dom0lessdeployments:
Domains are still started very quickly
Domains can immediately begin to perform critical tasks
Overall time to get PV Drivers up and running is shorter (no domain creation needed in Dom0)
˃ To become available by the end of the year (work by Hipert/Lab @ Unimore)
VirtIO
˃ Frontend Drivers are available in most Operating Systems
˃ "VMM" provides the backends (e.g. QEMU, kvmtools, etc.)
˃ Pros:
Many virtual device classes
˃ Cons:
Backends are currently required to be privileged – backends must be in Dom0
‒ Security implications
‒ Safety implications
Support for Xen is available, but it requires non-upstream toolstack patches
No Dom0less support
VirtIO
>> 14
Dom0
DomU 1 DomU 2
CPU CPU CPU
Dom0
Backend
"VMM"
Frontend
Xen
1. trap
2. ioreq
3. map and emulate
VirtIO
˃ IOREQ infrastructure upstream in Xen
It enables VirtIO backends and any other emulators to run in Dom0 (e.g. QEMU)
No support in the Xen tools for creating VirtIO frontends/backends yet (patch available)
PoC with virtio-block by EPAM
Requires Backends with full privileges, they have to be in Dom0
Good performance with full privileges
˃ Support for Unprivileged Backend is work-in-progress by Linaro Project Stratos
Based on memory copies to/from a pre-shared memory region
Performance to be determined (never done before, underlying protocols designed for sharing)
˃ How to enable VirtIO for Dom0less?
Could VirtIO device hotplug be used to avoid synchronous waiting during boot?
Argo
˃ Hypervisor-Mediated Data Transfers
Argo
˃ Pros:
Great performance and very strong security properties
‒ Hypervisor checks against malicious data senders
‒ Designed and optimized for memory copies
More lightweight than Xen PV Drivers and VirtIO
‒ No Xenstore, no PV backends, no VMM needed
‒ Requires Event Channels and Argo drivers (BSD drivers available here and here)
Straightforward Dom0less enablement: no need for any kind of "wait"
‒ No need to wait for Dom0 to complete booting to communicate with other VMs
˃ Current Status:
It requires one Linux patch to work with Dom0less
‒ Thanks Alec Kwapis from DornerWorks!
˃ Cons:
Requires Argo driver and Xen event channels for notifications
Static Shared Memory and Interrupts
U-Boot
Xen
Dom0
DomU 1 DomU 2
CPU CPU CPU
Dom0
ring
buffer
Static Shared Memory and Interrupts
˃ Plain shared memoryregion
Configured at "build time"
Guests setups ring buffers over shared memory
Can use OpenAMP RPMesg or any other communication libraries based on shared memory
˃ Interrupt-based notifications, work with any OSes
New hypercall to inject SGIs (patch by Xilinx)
˃ Pros:
Very simple
Works with any OS
Great performance if used correctly
˃ Cons:
One non-upstream patch to enable interrupt notifications
Require your own communication library
No dynamic connections
PL-based communication mechanisms
DomU 1 DomU 2
PL
Network
Device
Network
Device
Switch
PL-based communication mechanisms
DomU 1 DomU 2
PL
Data Movers
PL-based communication mechanisms
˃ Create Data Movers in Programmable Logic
From simple Network Devices to optimized Data Movers
˃ Assign PL resources to VMs
˃ VMs use PL to send and receive data to/from other VMs
˃ Pros:
Fastest for larger data sizes
Userspace drivers only
Easy to enable in any OS
˃ Cons:
Requires PL
Summary
Solution Upstream
Status for
regularXen
Upstream
Status for
Dom0less
VM-to-VM
Communication
vs. Device
Virtualization
Compatibility Performance Unprivileged
Backends
Plain shared
memory &
interrupts
Patch available
for interrupts
Patch
available for
interrupts
Static
VM-to-VM
Communication
Can run
anywhere
High if
implemented
correctly
Yes
Argo Upstream One patch
for Linux
available
Dynamic
VM-to-VM
Communication
Linux,
Windows with
a small effort
High Yes
Xen PV
Drivers
Upstream Patches
available
soon
Unprivileged
Device
Virtualization
Most traditional
OSes (Linux,
Windows,
BSDs)
High Yes
VirtIO Hypervisor:
upstream
No Privileged
Device
Virtualization
Most traditional
OSes (Linux,
Windows,
BSDs)
High with full
privileged
Otherwise: ?
No
(work in
progress)
Toolstack:
patches
available
Conclusions
˃ Several solutions are already available, but nothing works out of the box yet
˃ No one-size fits all:
Shared memory and notifications: best for OS compatibility
Argo: best for VM-to-VM communication
Xen PV Drivers: best for virtual devices with unprivileged backends
VirtIO: best for virtual device classes available
Demo
By Luca Miccio and Marco Solieri
Demo: Dom0less + PV Drivers
U-Boot
Xen
Dom0 DomU 1
CPU CPU
boots
boots
Demo: Dom0less + PV Drivers
U-Boot
Xen
CPU CPU
NetBack NetFront
xl
Adaptable.
Intelligent.

More Related Content

What's hot

System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022Stefano Stabellini
 
RunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeRunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeStefano Stabellini
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)The Linux Foundation
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...The Linux Foundation
 
2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov UpdateThe Linux Foundation
 
Safety-Certifying Open Source Software: The Case of the Xen Hypervisor
Safety-Certifying Open Source Software: The Case of the Xen HypervisorSafety-Certifying Open Source Software: The Case of the Xen Hypervisor
Safety-Certifying Open Source Software: The Case of the Xen HypervisorStefano Stabellini
 
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARMXPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARMThe Linux Foundation
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationRabbah Adel Ammar
 
Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationThe Linux Foundation
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel CrashdumpMarian Marinov
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Novell
 
Cache coloring Xen Summit 2020
Cache coloring Xen Summit 2020Cache coloring Xen Summit 2020
Cache coloring Xen Summit 2020Stefano Stabellini
 
Xen and the Art of Virtualization
Xen and the Art of VirtualizationXen and the Art of Virtualization
Xen and the Art of VirtualizationSusheel Thakur
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheetMiguel Angel
 
VMware vSphere Storage Enhancements
VMware vSphere Storage EnhancementsVMware vSphere Storage Enhancements
VMware vSphere Storage EnhancementsAnne Achleman
 
Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Richard Clark
 

What's hot (20)

System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
 
RunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edgeRunX: deploy real-time OSes as containers at the edge
RunX: deploy real-time OSes as containers at the edge
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
 
2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update2018 Genivi Xen Overview Nov Update
2018 Genivi Xen Overview Nov Update
 
Safety-Certifying Open Source Software: The Case of the Xen Hypervisor
Safety-Certifying Open Source Software: The Case of the Xen HypervisorSafety-Certifying Open Source Software: The Case of the Xen Hypervisor
Safety-Certifying Open Source Software: The Case of the Xen Hypervisor
 
LFCollab14: Xen vs Xen Automotive
LFCollab14: Xen vs Xen AutomotiveLFCollab14: Xen vs Xen Automotive
LFCollab14: Xen vs Xen Automotive
 
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARMXPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
 
VMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project PresentationVMware Vsphere Graduation Project Presentation
VMware Vsphere Graduation Project Presentation
 
Fosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using VirtualizationFosdem 18: Securing embedded Systems using Virtualization
Fosdem 18: Securing embedded Systems using Virtualization
 
Qemu
QemuQemu
Qemu
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Cache coloring Xen Summit 2020
Cache coloring Xen Summit 2020Cache coloring Xen Summit 2020
Cache coloring Xen Summit 2020
 
Xen and the Art of Virtualization
Xen and the Art of VirtualizationXen and the Art of Virtualization
Xen and the Art of Virtualization
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheet
 
VMware vSphere Storage Enhancements
VMware vSphere Storage EnhancementsVMware vSphere Storage Enhancements
VMware vSphere Storage Enhancements
 
Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018
 

Similar to ELC21: VM-to-VM Communication Mechanisms for Embedded

LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISORVanika Kapoor
 
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...The Linux Foundation
 
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...ShapeBlue
 
Xen and Client Virtualization: the case of XenClient XT
Xen and Client Virtualization: the case of XenClient XTXen and Client Virtualization: the case of XenClient XT
Xen and Client Virtualization: the case of XenClient XTThe Linux Foundation
 
OffensiveCon2022: Case Studies of Fuzzing with Xen
OffensiveCon2022: Case Studies of Fuzzing with XenOffensiveCon2022: Case Studies of Fuzzing with Xen
OffensiveCon2022: Case Studies of Fuzzing with XenTamas K Lengyel
 
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 ARMThe Linux Foundation
 
Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Bud Siddhisena
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0guest72e8c1
 
the NML project
the NML projectthe NML project
the NML projectLei Yang
 
Xen Euro Par07
Xen Euro Par07Xen Euro Par07
Xen Euro Par07congvc
 
ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleThe Linux Foundation
 

Similar to ELC21: VM-to-VM Communication Mechanisms for Embedded (20)

LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
 
Xen revisited
Xen revisitedXen revisited
Xen revisited
 
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...
CIF16/Scale14x: The latest from the Xen Project (Lars Kurth, Chairman of Xen ...
 
LFCOLLAB15: Xen 4.5 and Beyond
LFCOLLAB15: Xen 4.5 and BeyondLFCOLLAB15: Xen 4.5 and Beyond
LFCOLLAB15: Xen 4.5 and Beyond
 
Aplura virtualization slides
Aplura virtualization slidesAplura virtualization slides
Aplura virtualization slides
 
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
 
Medusa Project
Medusa ProjectMedusa Project
Medusa Project
 
Xen and Client Virtualization: the case of XenClient XT
Xen and Client Virtualization: the case of XenClient XTXen and Client Virtualization: the case of XenClient XT
Xen and Client Virtualization: the case of XenClient XT
 
Slide final
Slide finalSlide final
Slide final
 
OffensiveCon2022: Case Studies of Fuzzing with Xen
OffensiveCon2022: Case Studies of Fuzzing with XenOffensiveCon2022: Case Studies of Fuzzing with Xen
OffensiveCon2022: Case Studies of Fuzzing with Xen
 
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
 
Fuzzing_with_Xen.pdf
Fuzzing_with_Xen.pdfFuzzing_with_Xen.pdf
Fuzzing_with_Xen.pdf
 
.ppt
.ppt.ppt
.ppt
 
Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)Virtualization, The future of computing (archived)
Virtualization, The future of computing (archived)
 
RMLL / LSM 2009
RMLL / LSM 2009RMLL / LSM 2009
RMLL / LSM 2009
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0
 
the NML project
the NML projectthe NML project
the NML project
 
Handout2o
Handout2oHandout2o
Handout2o
 
Xen Euro Par07
Xen Euro Par07Xen Euro Par07
Xen Euro Par07
 
ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
 

More from Stefano Stabellini

Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
System Device Tree update: Bus Firewalls and Lopper
System Device Tree update: Bus Firewalls and LopperSystem Device Tree update: Bus Firewalls and Lopper
System Device Tree update: Bus Firewalls and LopperStefano Stabellini
 
Xen Cache Coloring: Interference-Free Real-Time System
Xen Cache Coloring: Interference-Free Real-Time SystemXen Cache Coloring: Interference-Free Real-Time System
Xen Cache Coloring: Interference-Free Real-Time SystemStefano Stabellini
 
Dom0less - Xen Developer Summit 2019
Dom0less  - Xen Developer Summit 2019Dom0less  - Xen Developer Summit 2019
Dom0less - Xen Developer Summit 2019Stefano Stabellini
 

More from Stefano Stabellini (9)

Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
RunX ELCE 2020
RunX ELCE 2020RunX ELCE 2020
RunX ELCE 2020
 
System Device Tree update: Bus Firewalls and Lopper
System Device Tree update: Bus Firewalls and LopperSystem Device Tree update: Bus Firewalls and Lopper
System Device Tree update: Bus Firewalls and Lopper
 
Xen Cache Coloring: Interference-Free Real-Time System
Xen Cache Coloring: Interference-Free Real-Time SystemXen Cache Coloring: Interference-Free Real-Time System
Xen Cache Coloring: Interference-Free Real-Time System
 
Dom0less - Xen Developer Summit 2019
Dom0less  - Xen Developer Summit 2019Dom0less  - Xen Developer Summit 2019
Dom0less - Xen Developer Summit 2019
 
Xen Project for ARM Servers
Xen Project for ARM ServersXen Project for ARM Servers
Xen Project for ARM Servers
 
Xen and OpenStack
Xen and OpenStackXen and OpenStack
Xen and OpenStack
 
XDS15: Project Raisin
XDS15: Project RaisinXDS15: Project Raisin
XDS15: Project Raisin
 
OpenStack and Xen
OpenStack and XenOpenStack and Xen
OpenStack and Xen
 

Recently uploaded

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 

Recently uploaded (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 

ELC21: VM-to-VM Communication Mechanisms for Embedded

  • 2. Existing VM-to-VM Communication Mechanisms ˃ Existing protocols: Xen PV Drivers, VirtIO discoverable and dynamic create new connections at runtime made for IO virtualization ˃ A frontend in the guest connects to the backend in Dom0 / hypervisor ˃ Created to virtualizedevices ˃ Typically based on memory sharing ˃ VirtIO expects privileged backends >> 2 Xen Dom0 Dom0 DomU Frontend Backend Hardware
  • 4. Static Partitioning ˃ Static Partitioning is similar to virtualization with some key differences: No dynamic VMs, a limited number of "partitions" instead Focus on direct assignment of hardware resources Configuration defined at "Build Time" Real-Time, Safety, and Short Boot Times are often key requirements ˃ Example: Xen Dom0less
  • 5. Xen Dom0less U-Boot Xen Dom0 DomU 1 DomU 2 CPU CPU CPU loads into memory loads into memory
  • 6. Xen Dom0less U-Boot Xen Dom0 DomU 1 DomU 2 CPU CPU CPU boots boots
  • 7. Xen Dom0less Current Status ˃ Static Partitions defined at build time ˃ Fast boot times, real-time support, easier to safety-certify ˃ Dom0 is not required ˃ No "out of the box" communication mechanisms available
  • 8. Static Partitioning and Communication ˃ Often only VM-to-VM communication is required, not device virtualization There are enough physical devices to directly assign them to VMs as needed Device virtualization can be interesting for sharing an SD card among multiple VMs ˃ VM-to-VM communication is differentfrom device virtualization A simple VM-to-VM channel to send and receive raw data It doesn't need "frontends" and "backends" It requires a smaller code base It is faster for exchanging data but it is unwieldy for virtualizing devices ˃ Static definition of VM-to-VM communication channels Define connections at "build time" Required for safety ˃ No privileged backends Required for safety ˃ Support Linux and non-Linux guests (Zephyr, FreeRTOS, WindRiver, QNX, etc.)
  • 9. Static Partitioning VM-to-VM communication ˃ No privileged backends Dom0 DomU 1 DomU 2 Hardware Device Backend Frontend
  • 10. Xen PV Drivers ˃ Solid and hardened in production for years (AWS) ˃ Made for device virtualization, can be used for communication: Network Block (disks) Console 2D graphics, mouse and keyboard Sound Etc. ˃ Pros: Very Fast Unprivileged Backends Available for Linux, BSDs and Windows, less common among RTOSes ˃ Cons: Might not be available in certain embedded RTOSes (but BSD versions exist for all PV drivers) Dom0less support is work-in-progress
  • 11. Xen PV Drivers and Dom0less >> 11 U-Boot Xen Dom0 DomU 1 DomU 2 CPU CPU CPU Dom0 Backend Frontend xl
  • 12. Xen PV Drivers and Dom0less ˃ Domains booted in parallel ˃ PV Drivers connections created after Dom0 is up and running ˃ Advantages compared to regular non-Dom0lessdeployments: Domains are still started very quickly Domains can immediately begin to perform critical tasks Overall time to get PV Drivers up and running is shorter (no domain creation needed in Dom0) ˃ To become available by the end of the year (work by Hipert/Lab @ Unimore)
  • 13. VirtIO ˃ Frontend Drivers are available in most Operating Systems ˃ "VMM" provides the backends (e.g. QEMU, kvmtools, etc.) ˃ Pros: Many virtual device classes ˃ Cons: Backends are currently required to be privileged – backends must be in Dom0 ‒ Security implications ‒ Safety implications Support for Xen is available, but it requires non-upstream toolstack patches No Dom0less support
  • 14. VirtIO >> 14 Dom0 DomU 1 DomU 2 CPU CPU CPU Dom0 Backend "VMM" Frontend Xen 1. trap 2. ioreq 3. map and emulate
  • 15. VirtIO ˃ IOREQ infrastructure upstream in Xen It enables VirtIO backends and any other emulators to run in Dom0 (e.g. QEMU) No support in the Xen tools for creating VirtIO frontends/backends yet (patch available) PoC with virtio-block by EPAM Requires Backends with full privileges, they have to be in Dom0 Good performance with full privileges ˃ Support for Unprivileged Backend is work-in-progress by Linaro Project Stratos Based on memory copies to/from a pre-shared memory region Performance to be determined (never done before, underlying protocols designed for sharing) ˃ How to enable VirtIO for Dom0less? Could VirtIO device hotplug be used to avoid synchronous waiting during boot?
  • 17. Argo ˃ Pros: Great performance and very strong security properties ‒ Hypervisor checks against malicious data senders ‒ Designed and optimized for memory copies More lightweight than Xen PV Drivers and VirtIO ‒ No Xenstore, no PV backends, no VMM needed ‒ Requires Event Channels and Argo drivers (BSD drivers available here and here) Straightforward Dom0less enablement: no need for any kind of "wait" ‒ No need to wait for Dom0 to complete booting to communicate with other VMs ˃ Current Status: It requires one Linux patch to work with Dom0less ‒ Thanks Alec Kwapis from DornerWorks! ˃ Cons: Requires Argo driver and Xen event channels for notifications
  • 18. Static Shared Memory and Interrupts U-Boot Xen Dom0 DomU 1 DomU 2 CPU CPU CPU Dom0 ring buffer
  • 19. Static Shared Memory and Interrupts ˃ Plain shared memoryregion Configured at "build time" Guests setups ring buffers over shared memory Can use OpenAMP RPMesg or any other communication libraries based on shared memory ˃ Interrupt-based notifications, work with any OSes New hypercall to inject SGIs (patch by Xilinx) ˃ Pros: Very simple Works with any OS Great performance if used correctly ˃ Cons: One non-upstream patch to enable interrupt notifications Require your own communication library No dynamic connections
  • 20. PL-based communication mechanisms DomU 1 DomU 2 PL Network Device Network Device Switch
  • 21. PL-based communication mechanisms DomU 1 DomU 2 PL Data Movers
  • 22. PL-based communication mechanisms ˃ Create Data Movers in Programmable Logic From simple Network Devices to optimized Data Movers ˃ Assign PL resources to VMs ˃ VMs use PL to send and receive data to/from other VMs ˃ Pros: Fastest for larger data sizes Userspace drivers only Easy to enable in any OS ˃ Cons: Requires PL
  • 23. Summary Solution Upstream Status for regularXen Upstream Status for Dom0less VM-to-VM Communication vs. Device Virtualization Compatibility Performance Unprivileged Backends Plain shared memory & interrupts Patch available for interrupts Patch available for interrupts Static VM-to-VM Communication Can run anywhere High if implemented correctly Yes Argo Upstream One patch for Linux available Dynamic VM-to-VM Communication Linux, Windows with a small effort High Yes Xen PV Drivers Upstream Patches available soon Unprivileged Device Virtualization Most traditional OSes (Linux, Windows, BSDs) High Yes VirtIO Hypervisor: upstream No Privileged Device Virtualization Most traditional OSes (Linux, Windows, BSDs) High with full privileged Otherwise: ? No (work in progress) Toolstack: patches available
  • 24. Conclusions ˃ Several solutions are already available, but nothing works out of the box yet ˃ No one-size fits all: Shared memory and notifications: best for OS compatibility Argo: best for VM-to-VM communication Xen PV Drivers: best for virtual devices with unprivileged backends VirtIO: best for virtual device classes available
  • 25. Demo By Luca Miccio and Marco Solieri
  • 26. Demo: Dom0less + PV Drivers U-Boot Xen Dom0 DomU 1 CPU CPU boots boots
  • 27. Demo: Dom0less + PV Drivers U-Boot Xen CPU CPU NetBack NetFront xl