SlideShare a Scribd company logo
1 of 33
Download to read offline
1
HANDLING MIXED CRITICALITY
ON EMBEDDED
MULTI-CORE SYSTEMS
Claudio Scordino
Evidence Srl
claudio@evidence.eu.com
22
Summary
• Mixed criticality
• The HERCULES project
• ERIKA Enterprise
• Jailhouse hypervisor
• Communication
• Interference
33
About Evidence Srl...
• Company specialized in firmware and software
for small electronic devices
Founded in 2002 in Pisa, Italy
~22 qualified people
15+ years of experience in industrial projects
• We look for:
... plus:
... excellent knowledge of C programming,
operating systems,
and computer architectures
44
Mixed criticality
Non-critical tasks:
Critical tasks:Multimedia
HMI
Networking
Logging
Data backup
Autonomous driving
Industrial automation
Robotics
Engine control
Different levels of criticality
co-existing on the same
platform
55
Rationale
Cost-reduction: reducing recurrent costs (i.e. hardware)
Flexibility: e.g. move tasks from one domain to another
66
Use-case: automotive
• Mixed criticality is of particular interest for the
automotive market
• Non-critical tasks:
– Infotainment / multimedia
– Human-machine interface
– Navigation / dashboard
• Safety-critical tasks:
– Engine/brake control
– ADAS
– Autonomous driving
77
1st approach
• Make Linux real-time!
• Dual kernel:
– RT-Linux (dead)
– RTAI (only x86)
– Xenomai (alive ?)
• PREEMPT_RT (soft real-time)
• Common issue: certification/standards for specific
domains
88
2nd approach: resource partitioning
• Modern hardware provides support for
virtualization/partitioning
• Examples of existing technologies:
– Intel VT-x, VT-d
– AMD-V, AMD-Vi
– ARM TrustZone
– ARM virtualization extensions, SMMU
Idea: leverage hardware support for
running multiple operating systems
99
The HERCULES project
Linux RT
RTOS
ARM
Cortex-A
• High-Performance Real-Time Architectures for Low-Power
Embedded Systems (HERCULES)
• http://hercules2020.eu
• Funded by the European Commission (H2020)
• Jan. 2016 – Dec. 2018
ARM
Cortex-A
ARM
Cortex-A
ARM
Cortex-A
Jailhouse hypervisor
Infrastructure:
• UNIMORE
• Evidence
• CTU
• ETH Zurich
Use-cases:
• Magneti Marelli
• Airbus
• Pitom
1010
ERIKA Enterprise
• Real-time operating system (RTOS)
• Developed by Evidence for automotive ECUs
• Minimal footprint (few KB) and multi-core support
• Certifications: OSEK/VDX, ISO26262 (ASIL B in-progress)
• Reference standards: MISRA-C, AUTOSAR OS
• Dual licensing: GPL (optional linking exception with a fee)
• Used by several companies and research projects:
http://www.erika-enterprise.com
https://github.com/evidence/erika3
1111
Supported hardware
ERIKA Enterprise v3 supports:
CPUs/SoCs:
ARM Cortex-A, Cortex-M, Cortex-R
Infineon Tricore AURIX TC2xx, TC3xx*
Intel x86-64
Kalray MPPA Bostan
Microchip AVR, dsPIC33, PIC24
Renesas RH850
Hypervisors:
KVM*
Jailhouse
Vibrante (NVIDIA)
Xen* * Coming soon
1212
Jailhouse
• Small, lightweight hypervisor
• Young project (2013) by Siemens
• License: GPLv2
• Code hosted on GitHub
https://github.com/siemens/jailhouse
• Goals: safety-critical & certification
(goal: 10.000 lines of code per architecture)
1313
Jailhouse (2)
• A tool to run
... real-time and/or safety-critical tasks
... on multi-core platforms
... aside Linux
• It provides
... strong & clean isolation
... bare-metal like
performance & latencies
1414
Jailhouse (3)
• Partitioning hypervisor
– More focused on isolation and resource
assignment than on virtualization
• Linux is required
– "Root cell"
– Similar to Xen's dom0 but w/out full control of hw
• Can't run unmodified OSs (e.g. Windows)
1515
Jailhouse (4)
• Static design:
– 1:1 resource assignment
– Guests can't share a core (no scheduling)
– It doesn't support overcommitment of resources
(like CPUs, RAM or devices).
– No hw emulation
• Real-time guarantees:
– Must be provided by the guest OS
– Jailhouse just introduces the least
possible overhead
1616
Jailhouse: naming conventions
The isolated compartments are
called cells:
• One root cell
• One or more non-root cells
The guest
software
is called inmate
1717
Memory layout
• Typical RAM layout:
• Memory for hypervisor/inmates is reserved
at boot time
– x86-64: memmap= boot param
– ARM: device-tree or mem= boot param
1818
Jailhouse architecture
1919
Root cell configuration format
struct {
struct jailhouse_system header;
/*...*/
} __attribute__((packed)) config = {
.header = {
.signature = JAILHOUSE_SYSTEM_SIGNATURE,
.hypervisor_memory = {
.phys_start = 0xfc000000,
.size = 0x4000000,
},
.debug_console = {
.phys_start = 0x70006000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_IO,
},
.platform_info.arm = {
.gicd_base = 0x50041000,
/* ... */
.maintenance_irq = 25,
},
.root_cell = {
.name = "Jetson-TK1",
/* ... */
Cell resources
• Configuration (e.g. addresses)
written through C files
• Generated on x86-64:
• Manually written on ARM
– Datasheet
– Device tree
– proc/
sudo jailhouse config create sysconfig.c
2020
Non-root cell configuration format
Cell resources
struct {
struct jailhouse_cell_desc cell;
/*...*/
} __attribute__((packed)) config = {
.cell = {
.signature = JAILHOUSE_CELL_DESC_SIGNATURE,
.name = "apic-demo",
.cpu_set_size = sizeof(config.cpus),
/*...*/
}
.cpus = {
0x8,
},
2121
Cell resources
• Memory regions:
– Physical address, virtual address, size
– Flags (JAILHOUSE_MEM_*):
• PIO bitmap (x86 port-based I/O)
• IRQ chips
• Cache regions
• PCI devices and related capabilities
• Memory-mapped UARTs
All
configurations
written in C
2222
Driver installation
• Build & install Jailhouse:
The build process also transforms all
configuration files from C to binary (i.e. *.cell files)
• Install the Jailhouse driver:
$ make
$ sudo make install
$ sudo modprobe jailhouse
2323
Jailhouse enabling
• Enable the root cell passing the system
configuration:
$ sudo jailhouse enable configs/sysconfig.cell
2424
Jailhouse enabling (2)
2525
Non-root cell creation
• Create a non-root cell:
• Load a binary into the created cell:
• Start the cell:
• (optional) Get statistics about the cell:
$ sudo jailhouse cell create configs/file.cell
$ sudo jailhouse cell load cell_name code.bin
$ sudo jailhouse cell start cell_name
$ sudo jailhouse cell stats cell_name
2626
Non-root cell creation (2)
2727
Good practices
• Give the hypervisor access to a serial console
• Put #define CONFIG_TRACE_ERROR in file
include/jailhouse/config.h before compiling
• Example of misconfiguration:
2828
NVIDIA support
• In HERCULES we have supported the
following platforms:
– NVIDIA TX1/TX2 (Cortex-A57 + Denver)
– Xilinx ZCU102 (Cortex-A53)
• NVIDIA's vendor kernel is not supported by
mainline Jailhouse:
– We created a specific Jailhouse tree:
https://github.com/evidence/linux-jailhouse-jetson
– Virtual machine containing Jailhouse + ERIKA:
http://www.erika-enterprise.com/index.php/download/virtual-
machines.html
2929
Communication
• A sophisticated mechanism allows cells to
communicate through virtual PCI devices
– Model similar to ivshmem device from Qemu
– No multicast communications possible
• See Documentation/inter-cell-
communication.txt
3030
Linux
kernel
AUTOSAR COM
Jailhouse hypervisor
SWC
AUTOSAR Classic
App
Linux OS
ARM
Cortex-A
ARM
Cortex-A
ARM
Cortex-A
ARM
Cortex-A
• Library on top of Jailhouse's
mechanism
• Blocking and non-blocking calls
• Dynamic-size messages
• Similar to AUTOSAR COM API:
Com_StatusType Com_GetStatus();
uint8 Com_SendSignal(Com_SignalIdType
SignalId, const void *SignalDataPtr);
uint8 Com_ReceiveSignal(Com_SignalIdType
SignalId, void* SignalDataPtr);
• Soon available (GPL)
3131
Video (2)
3232
Interference
Core
Linux RTOS
Hypervisor
Core
General-
Purpose
apps
Real-time
apps
L1 L1
L2 cache
SDRAM
Interference
• Even with partitioning, there is still
some interference on shared hardware
E.g. caches, memory bus, etc.
• One core can affect the real-time
responsiveness of other cores
• Software solutions:
1. Cache coloring to avoid data eviction (handle
virtual memory so that pages with different
"colors" have different positions in cache)
2. "Memguard" (force memory bandwidth by
monitoring performance counters)
3. Co-scheduling algorithms (orchestrating
memory accesses)
• Developed in HERCULES
• Soon released as open-source
3333
Conclusions
• Software stack:
– Handling mixed criticality
– Targeting automotive (AUTOSAR compliant)
– Open-source (GPL)
– Working on COTS ARM hardware

More Related Content

What's hot

LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLinaro
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206Linaro
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100Linaro
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Linaro
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108Linaro
 
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Linaro
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardKernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardAnne Nicolas
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
 
ELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, futureELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, futureNeil Armstrong
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITELinaro
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLinaro
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFILinaro
 
LAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrLAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrShovan Sargunam
 
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113Linaro
 

What's hot (20)

LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
 
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardKernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
ELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, futureELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, future
 
Secure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-VSecure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-V
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
 
LAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community UpdateLAS16-400K2: TianoCore – Open Source UEFI Community Update
LAS16-400K2: TianoCore – Open Source UEFI Community Update
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
LAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT ZephyrLAS16-300K2: Geoff Thorpe - IoT Zephyr
LAS16-300K2: Geoff Thorpe - IoT Zephyr
 
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
 

Similar to Claudio Scordino - Handling mixed criticality on embedded multi-core systems

HiPEAC 2022_Marco Tassemeier presentation
HiPEAC 2022_Marco Tassemeier presentationHiPEAC 2022_Marco Tassemeier presentation
HiPEAC 2022_Marco Tassemeier presentationVEDLIoT Project
 
Blackhat USA 2016 - What's the DFIRence for ICS?
Blackhat USA 2016 - What's the DFIRence for ICS?Blackhat USA 2016 - What's the DFIRence for ICS?
Blackhat USA 2016 - What's the DFIRence for ICS?Chris Sistrunk
 
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationHiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationVEDLIoT Project
 
Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asRISC-V International
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-reviewabinaya m
 
Embedded systems introduction
Embedded systems introductionEmbedded systems introduction
Embedded systems introductionSagar Adroja
 
Embedded Systems Introduction
Embedded Systems IntroductionEmbedded Systems Introduction
Embedded Systems IntroductionSagar Adroja
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
 
Introduction To Linux Kernel Modules
Introduction To Linux Kernel ModulesIntroduction To Linux Kernel Modules
Introduction To Linux Kernel Modulesdibyajyotig
 
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
 
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIOHigh Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIORebekah Rodriguez
 
Using VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersUsing VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersMichelle Holley
 
Affordable trustworthy-systems
Affordable trustworthy-systemsAffordable trustworthy-systems
Affordable trustworthy-systemsmicrokerneldude
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxVivek Kumar
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & dockerejlp12
 

Similar to Claudio Scordino - Handling mixed criticality on embedded multi-core systems (20)

HiPEAC 2022_Marco Tassemeier presentation
HiPEAC 2022_Marco Tassemeier presentationHiPEAC 2022_Marco Tassemeier presentation
HiPEAC 2022_Marco Tassemeier presentation
 
Blackhat USA 2016 - What's the DFIRence for ICS?
Blackhat USA 2016 - What's the DFIRence for ICS?Blackhat USA 2016 - What's the DFIRence for ICS?
Blackhat USA 2016 - What's the DFIRence for ICS?
 
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationHiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
 
LSA2 - 02 Namespaces
LSA2 - 02  NamespacesLSA2 - 02  Namespaces
LSA2 - 02 Namespaces
 
Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg as
 
NodeGrid Bold
NodeGrid BoldNodeGrid Bold
NodeGrid Bold
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-review
 
Embedded systems introduction
Embedded systems introductionEmbedded systems introduction
Embedded systems introduction
 
Embedded Systems Introduction
Embedded Systems IntroductionEmbedded Systems Introduction
Embedded Systems Introduction
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Fuzzing_with_Xen.pdf
Fuzzing_with_Xen.pdfFuzzing_with_Xen.pdf
Fuzzing_with_Xen.pdf
 
Introduction To Linux Kernel Modules
Introduction To Linux Kernel ModulesIntroduction To Linux Kernel Modules
Introduction To Linux Kernel Modules
 
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
 
Sundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing ProgramSundance at the 49th Intelligent Sensing Program
Sundance at the 49th Intelligent Sensing Program
 
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIOHigh Performance Object Storage in 30 Minutes with Supermicro and MinIO
High Performance Object Storage in 30 Minutes with Supermicro and MinIO
 
Using VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersUsing VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear Containers
 
Affordable trustworthy-systems
Affordable trustworthy-systemsAffordable trustworthy-systems
Affordable trustworthy-systems
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptxProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
ProjectVault[VivekKumar_CS-C_6Sem_MIT].pptx
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & docker
 

More from linuxlab_conf

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketlinuxlab_conf
 
Jacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexJacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexlinuxlab_conf
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugslinuxlab_conf
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmlinuxlab_conf
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
 

More from linuxlab_conf (8)

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
 
Jacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexJacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complex
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruption
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 

Recently uploaded

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Claudio Scordino - Handling mixed criticality on embedded multi-core systems

  • 1. 1 HANDLING MIXED CRITICALITY ON EMBEDDED MULTI-CORE SYSTEMS Claudio Scordino Evidence Srl claudio@evidence.eu.com
  • 2. 22 Summary • Mixed criticality • The HERCULES project • ERIKA Enterprise • Jailhouse hypervisor • Communication • Interference
  • 3. 33 About Evidence Srl... • Company specialized in firmware and software for small electronic devices Founded in 2002 in Pisa, Italy ~22 qualified people 15+ years of experience in industrial projects • We look for: ... plus: ... excellent knowledge of C programming, operating systems, and computer architectures
  • 4. 44 Mixed criticality Non-critical tasks: Critical tasks:Multimedia HMI Networking Logging Data backup Autonomous driving Industrial automation Robotics Engine control Different levels of criticality co-existing on the same platform
  • 5. 55 Rationale Cost-reduction: reducing recurrent costs (i.e. hardware) Flexibility: e.g. move tasks from one domain to another
  • 6. 66 Use-case: automotive • Mixed criticality is of particular interest for the automotive market • Non-critical tasks: – Infotainment / multimedia – Human-machine interface – Navigation / dashboard • Safety-critical tasks: – Engine/brake control – ADAS – Autonomous driving
  • 7. 77 1st approach • Make Linux real-time! • Dual kernel: – RT-Linux (dead) – RTAI (only x86) – Xenomai (alive ?) • PREEMPT_RT (soft real-time) • Common issue: certification/standards for specific domains
  • 8. 88 2nd approach: resource partitioning • Modern hardware provides support for virtualization/partitioning • Examples of existing technologies: – Intel VT-x, VT-d – AMD-V, AMD-Vi – ARM TrustZone – ARM virtualization extensions, SMMU Idea: leverage hardware support for running multiple operating systems
  • 9. 99 The HERCULES project Linux RT RTOS ARM Cortex-A • High-Performance Real-Time Architectures for Low-Power Embedded Systems (HERCULES) • http://hercules2020.eu • Funded by the European Commission (H2020) • Jan. 2016 – Dec. 2018 ARM Cortex-A ARM Cortex-A ARM Cortex-A Jailhouse hypervisor Infrastructure: • UNIMORE • Evidence • CTU • ETH Zurich Use-cases: • Magneti Marelli • Airbus • Pitom
  • 10. 1010 ERIKA Enterprise • Real-time operating system (RTOS) • Developed by Evidence for automotive ECUs • Minimal footprint (few KB) and multi-core support • Certifications: OSEK/VDX, ISO26262 (ASIL B in-progress) • Reference standards: MISRA-C, AUTOSAR OS • Dual licensing: GPL (optional linking exception with a fee) • Used by several companies and research projects: http://www.erika-enterprise.com https://github.com/evidence/erika3
  • 11. 1111 Supported hardware ERIKA Enterprise v3 supports: CPUs/SoCs: ARM Cortex-A, Cortex-M, Cortex-R Infineon Tricore AURIX TC2xx, TC3xx* Intel x86-64 Kalray MPPA Bostan Microchip AVR, dsPIC33, PIC24 Renesas RH850 Hypervisors: KVM* Jailhouse Vibrante (NVIDIA) Xen* * Coming soon
  • 12. 1212 Jailhouse • Small, lightweight hypervisor • Young project (2013) by Siemens • License: GPLv2 • Code hosted on GitHub https://github.com/siemens/jailhouse • Goals: safety-critical & certification (goal: 10.000 lines of code per architecture)
  • 13. 1313 Jailhouse (2) • A tool to run ... real-time and/or safety-critical tasks ... on multi-core platforms ... aside Linux • It provides ... strong & clean isolation ... bare-metal like performance & latencies
  • 14. 1414 Jailhouse (3) • Partitioning hypervisor – More focused on isolation and resource assignment than on virtualization • Linux is required – "Root cell" – Similar to Xen's dom0 but w/out full control of hw • Can't run unmodified OSs (e.g. Windows)
  • 15. 1515 Jailhouse (4) • Static design: – 1:1 resource assignment – Guests can't share a core (no scheduling) – It doesn't support overcommitment of resources (like CPUs, RAM or devices). – No hw emulation • Real-time guarantees: – Must be provided by the guest OS – Jailhouse just introduces the least possible overhead
  • 16. 1616 Jailhouse: naming conventions The isolated compartments are called cells: • One root cell • One or more non-root cells The guest software is called inmate
  • 17. 1717 Memory layout • Typical RAM layout: • Memory for hypervisor/inmates is reserved at boot time – x86-64: memmap= boot param – ARM: device-tree or mem= boot param
  • 19. 1919 Root cell configuration format struct { struct jailhouse_system header; /*...*/ } __attribute__((packed)) config = { .header = { .signature = JAILHOUSE_SYSTEM_SIGNATURE, .hypervisor_memory = { .phys_start = 0xfc000000, .size = 0x4000000, }, .debug_console = { .phys_start = 0x70006000, .size = 0x1000, .flags = JAILHOUSE_MEM_IO, }, .platform_info.arm = { .gicd_base = 0x50041000, /* ... */ .maintenance_irq = 25, }, .root_cell = { .name = "Jetson-TK1", /* ... */ Cell resources • Configuration (e.g. addresses) written through C files • Generated on x86-64: • Manually written on ARM – Datasheet – Device tree – proc/ sudo jailhouse config create sysconfig.c
  • 20. 2020 Non-root cell configuration format Cell resources struct { struct jailhouse_cell_desc cell; /*...*/ } __attribute__((packed)) config = { .cell = { .signature = JAILHOUSE_CELL_DESC_SIGNATURE, .name = "apic-demo", .cpu_set_size = sizeof(config.cpus), /*...*/ } .cpus = { 0x8, },
  • 21. 2121 Cell resources • Memory regions: – Physical address, virtual address, size – Flags (JAILHOUSE_MEM_*): • PIO bitmap (x86 port-based I/O) • IRQ chips • Cache regions • PCI devices and related capabilities • Memory-mapped UARTs All configurations written in C
  • 22. 2222 Driver installation • Build & install Jailhouse: The build process also transforms all configuration files from C to binary (i.e. *.cell files) • Install the Jailhouse driver: $ make $ sudo make install $ sudo modprobe jailhouse
  • 23. 2323 Jailhouse enabling • Enable the root cell passing the system configuration: $ sudo jailhouse enable configs/sysconfig.cell
  • 25. 2525 Non-root cell creation • Create a non-root cell: • Load a binary into the created cell: • Start the cell: • (optional) Get statistics about the cell: $ sudo jailhouse cell create configs/file.cell $ sudo jailhouse cell load cell_name code.bin $ sudo jailhouse cell start cell_name $ sudo jailhouse cell stats cell_name
  • 27. 2727 Good practices • Give the hypervisor access to a serial console • Put #define CONFIG_TRACE_ERROR in file include/jailhouse/config.h before compiling • Example of misconfiguration:
  • 28. 2828 NVIDIA support • In HERCULES we have supported the following platforms: – NVIDIA TX1/TX2 (Cortex-A57 + Denver) – Xilinx ZCU102 (Cortex-A53) • NVIDIA's vendor kernel is not supported by mainline Jailhouse: – We created a specific Jailhouse tree: https://github.com/evidence/linux-jailhouse-jetson – Virtual machine containing Jailhouse + ERIKA: http://www.erika-enterprise.com/index.php/download/virtual- machines.html
  • 29. 2929 Communication • A sophisticated mechanism allows cells to communicate through virtual PCI devices – Model similar to ivshmem device from Qemu – No multicast communications possible • See Documentation/inter-cell- communication.txt
  • 30. 3030 Linux kernel AUTOSAR COM Jailhouse hypervisor SWC AUTOSAR Classic App Linux OS ARM Cortex-A ARM Cortex-A ARM Cortex-A ARM Cortex-A • Library on top of Jailhouse's mechanism • Blocking and non-blocking calls • Dynamic-size messages • Similar to AUTOSAR COM API: Com_StatusType Com_GetStatus(); uint8 Com_SendSignal(Com_SignalIdType SignalId, const void *SignalDataPtr); uint8 Com_ReceiveSignal(Com_SignalIdType SignalId, void* SignalDataPtr); • Soon available (GPL)
  • 32. 3232 Interference Core Linux RTOS Hypervisor Core General- Purpose apps Real-time apps L1 L1 L2 cache SDRAM Interference • Even with partitioning, there is still some interference on shared hardware E.g. caches, memory bus, etc. • One core can affect the real-time responsiveness of other cores • Software solutions: 1. Cache coloring to avoid data eviction (handle virtual memory so that pages with different "colors" have different positions in cache) 2. "Memguard" (force memory bandwidth by monitoring performance counters) 3. Co-scheduling algorithms (orchestrating memory accesses) • Developed in HERCULES • Soon released as open-source
  • 33. 3333 Conclusions • Software stack: – Handling mixed criticality – Targeting automotive (AUTOSAR compliant) – Open-source (GPL) – Working on COTS ARM hardware