XtratuM hypervisor redesign for LEON4 multicore processor



Similar documents
Multicore partitioned systems based on hypervisor

Open Source Implementation of Hierarchical Scheduling for Integrated Modular Avionics

XtratuM for LEON3: an Open Source Hypervisor for High Integrity Systems

Title: XtratuM: a Hypervisor for Safety Critical Embedded Systems. Authors:M. Masmano, I. Ripoll, A. Crespo and J.J. Metge

XtratuM: a Hypervisor for Safety Critical Embedded Systems

XTRATUM: AN OPEN SOURCE HYPERVISOR FOR TSP EMBEDDED SYSTEMS IN AEROSPACE

Experience with the integration of distribution middleware into partitioned systems

ORK+/XtratuM: An Open Partitioning Platform for Ada

MultiPARTES. Virtualization on Heterogeneous Multicore Platforms. 2012/7/18 Slides by TU Wien, UPV, fentiss, UPM

A hypervisor approach with real-time support to the MIPS M5150 processor

Virtualization. Types of Interfaces

HIPEAC Segregation of Subsystems with Different Criticalities on Networked Multi-Core Chips in the DREAMS Architecture

VxWorks Guest OS Programmer's Guide for Hypervisor 1.1, 6.8. VxWorks GUEST OS PROGRAMMER'S GUIDE FOR HYPERVISOR

Mixed-Criticality: Integration of Different Models of Computation. University of Siegen, Roman Obermaisser

Virtualization in the ARMv7 Architecture Lecture for the Embedded Systems Course CSD, University of Crete (May 20, 2014)

PikeOS: Multi-Core RTOS for IMA. Dr. Sergey Tverdyshev SYSGO AG , Moscow

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

System Software and TinyAUTOSAR

KVM in Embedded Requirements, Experiences, Open Challenges

Full and Para Virtualization

Real-time KVM from the ground up

An Implementation Of Multiprocessor Linux

Flight Processor Virtualization

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Introduction to the NI Real-Time Hypervisor

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Virtual Machines. COMP 3361: Operating Systems I Winter

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

Operating Systems. Lecture 03. February 11, 2013

System Design Issues in Embedded Processing

Leveraging Thin Hypervisors for Security on Embedded Systems

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Parallels Virtuozzo Containers

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

Sierraware Overview. Simply Secure

Oracle Database Scalability in VMware ESX VMware ESX 3.5

Enabling Technologies for Distributed Computing

SPACE AND TIME PARTITIONING WITH HARDWARE SUPPORT FOR SPACE APPLICATIONS

Distributed Systems. Virtualization. Paul Krzyzanowski

The Microsoft Windows Hypervisor High Level Architecture

Scaling Microsoft Exchange in a Red Hat Enterprise Virtualization Environment

Windows Server Virtualization & The Windows Hypervisor

WIND RIVER HYPERVISOR

Applying Multi-core and Virtualization to Industrial and Safety-Related Applications

Virtualization benefits Introduction to XenSource How Xen is changing virtualization The Xen hypervisor architecture Xen paravirtualization

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Virtualization in Linux KVM + QEMU

Real-time Operating Systems. VO Embedded Systems Engineering Armin Wasicek

OSes. Arvind Seshadri Mark Luk Ning Qu Adrian Perrig SOSP2007. CyLab of CMU. SecVisor: A Tiny Hypervisor to Provide

The Freescale Embedded Hypervisor

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...

Enabling Technologies for Distributed and Cloud Computing

NoHype: Virtualized Cloud Infrastructure without the Virtualization

White Paper. Freescale s Embedded Hypervisor for QorIQ P4 Series Communications Platform

Beyond Virtualization: A Novel Software Architecture for Multi-Core SoCs. Jim Ready September 18, 2012

Performance tuning Xen

Outline. Introduction. Multiprocessor Systems on Chip. A MPSoC Example: Nexperia DVP. A New Paradigm: Network on Chip

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Virtualization Technology. Zhiming Shen

Virtualization. Pradipta De

PROCESSOR VIRTUALIZATION ON EMBEDDED LINUX SYSTEMS

Database Virtualization

Hybrid Virtualization The Next Generation of XenLinux

9/26/2011. What is Virtualization? What are the different types of virtualization.

Embedded OS. Product Information

2972 Linux Options and Best Practices for Scaleup Virtualization

Hardware accelerated Virtualization in the ARM Cortex Processors

7a. System-on-chip design and prototyping platforms

Scaling in a Hypervisor Environment

Memory Isolation in Many-Core Embedded Systems

ELI: Bare-Metal Performance for I/O Virtualization

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

Virtual machines and operating systems

Enterprise-Class Virtualization with Open Source Technologies

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

Nested Virtualization

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Chapter 11 I/O Management and Disk Scheduling

IOMMU: A Detailed view

Distributed and Cloud Computing

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

Architectures and Platforms

Systemverwaltung 2009 AIX / LPAR

x86 ISA Modifications to support Virtual Machines

Virtualization and the U2 Databases

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Zeus Traffic Manager VA Performance on vsphere 4

Transcription:

XtratuM hypervisor redesign for LEON4 multicore processor E.Carrascosa, M.Masmano, P.Balbastre and A.Crespo Universidad Politécnica de Valencia, Spain

Outline Motivation/Introduction XtratuM hypervisor XtratuM SMP Evaluation Conclusions

European aero-space sector Quite conservative sector However, systems have more and more powerful processors and larger memories The same workload that required hundred of processors now just requires a few ones So, why do not use less hardware to run the same software Isolation between execution components must be guaranteed Interest in adopting a TSP based-architecture principle Already used in the avionic sector (IMA)

Time & Space Partitioning (TSP) (I) TSP based-architecture Defines a set of isolation execution environments Guarantees temporal and spatial isolation of the components of the system Enables to concentrate modules with low criticality level jointly with high criticality ones in the same computer

Time & Space Partitioning (TSP) (II) Software (several technological solutions) Hypervisor Partitioning kernel Micro-kernel Standard ARINC-653 (avionics) defines the interface for building TSP systems (partitioning kernel)

XtratuM hypervisor (I) Bare metal, open source hypervisor designed to meet safety critical real-time requirements Uses paravirtualization techniques Supported architectures: x86, LEON2/3/4 (SPARCv8), ARM Cortex R4f Strong temporal isolation: fixed cyclic scheduler Strong spatial isolation: partitions are executed in user mode, and do not share physical memory pages

XtratuM hypervisor (II) Robust communication mechanisms (ARINC sampling/queuing ports) Robust error management via health monitor Devices can be directly managed by partitions. Shared devices can be organised in a IOServer All resources are allocated via Configuration Table (XML) Tracing facilities

Hypercalls example High-level hypercalls xm_s32_t XM_create_queuing_port(char * portname, xm_u32_t maxnomsgs, xm_u32_t maxmsgsize, xm_u32_t direction); xm_s32_t XM_hm_status(xm_HmStatus_t *hmstatusptr); xm_s32_t XM_trace_event(xm_u32_t bitmask, xmtraceevent_t *event); Low-level hypercalls void XM_sparc_set_psr(xm_u32_t psr); void XM_sparc_flush_cache(void); void XM_sparc_flush_regwin(void); void XM_rett(void);

XML configuration file <SystemDescription version="1.0.0"> [...] <ProcessorTable> <Processor id="0" frequency="80mhz"> <CyclicPlanTable> <Plan id="0" majorframe="2000ms"> <Slot id="0" start="0ms" duration="1000ms" partitionid="0"/> </Plan> </CyclicPlanTable> </Processor> </ProcessorTable> [...] <PartitionTable> <Partition id="0" name="partition1" flags="system" console="uart"> <PhysicalMemoryAreas> <Area start="0x40180000" size="256kb" mappedat="0x40000000"/> </PhysicalMemoryAreas> </Partition> </PartitionTable> </SystemDescription>

Configuration & Deployment

XtratuM Roadmap CNES: Centre National d'études Spatiales ESA: European Space Agency AstriumST: Astrium Transportation (Airbus) Certifiable (ECSS) LEON2/3 (CNES/ESA) LEON2 (CNES) LEON3 (ESA) Prototype x86 x86 LEON2 (CNES) LEON3 (ESA) Preindustrialised LEON4- SMP (ESA) x86 SMP ARM Cortex (AstriumST) LEON3-SMP (CNES) 2004... 2007 2008 2009 2010 2011 2012 2013 2014 LKM

XtratuM-SMP Project System impact of distributed multicore systems Participants: Astrium-SAT, UPV Funded by ESA Aim: Support SMP Support IOMMU Test the NGMP processor Board: FPGA LEON4 NGMP

LEON4-NGMP processor Fault-tolerant synthesizable VHDL Quad-Core 32-bit LEON4 SPARCv8 MMU Two shared FPUs 4x4KB instruction/data L1 cache 256KB L2 cache System frequency: 50MHz Developed by Aeroflex Gaisler (funded by ESA)

SMP model extensions (I) Booting: CPU0 sets up the system CPU1-3 set up their local info Scheduler synchronisation Devices Global clock one clock for the whole system Local timer per CPU IPIs for synchronisation

SMP model extensions (II) Partition model extension Inclusion of the VCPU concept Number restricted by configuration Mimics underlying CPU behaviour: All halted but VCPU0, which is in charge of starting up the others VCPUs are local to partitions New hypercalls to manage VCPUs: XM_get_vcpuid(), XM_reset_vcpu(), XM_halt_vcpu() Behaviour of some hypercalls (XM_halt_partition, ) updated to affect all VCPUs within the partition

SMP model extensions (III) Partition0 Partition1 Partition2 VCPU0 VCPU1 VCPU0 VCPU1 VCPU0 VCPU1 XtratuM CPU0 CPU1

SMP model extensions (IV) Local cyclic scheduler Each CPU has its own plan VCPUs are referenced in the plan <Slot start= 0 duration= 200ms partitionid= 0 vcpuid= 0 /> Same MAF for all the plans Synchronisation of the plans at the start of each hyperperiod A VCPU cannot be allocated to more than one CPU MAF MAF CPU0 0, 0 1, 0 0, 1 0, 0 1, 0 0, 1 CPU1 1, 1 1, 1 1, 1 1, 1

SMP model extensions (V) Local fixed priority scheduler It can be used instead of the cyclic scheduler Each VCPU is configured with a priority, a VCPU can be preempted by a higher priority one Included to experiment with alternative scheduling policies Improves interrupt responsiveness

SMP model extensions (VI) IOMMU support ESA requirement: Implement IOMMU support Provides I/O isolation at bus level (DMA or other master devices) IOMMU tables are statically configured as a part of the XML configuration file It cannot be changed during the execution

Evaluation (I) Aim: Measure the impact of the hypervisor layer Benchmarks: Dhrystone and CoreMark Assumptions: One partition, one CPU Overhead due to hypercalls

Evaluation (II) Aim: Measure the impact of the hypervisor layer and the context switch Benchmarks: Dhrystone and CoreMark Assumptions: One partition, one CPU, different slot durations Overhead due to hypercalls + context switch

Evaluation (III) Aim: Measure the impact of the hypervisor layer, the context switch and several CPUs Benchmarks: Dhrystone and CoreMark Assumptions: Several partitions, several CPUs Overhead due to hypercalls + context switch + CPU interactions

Conclusions XtratuM has been adapted to support SMP architectures Partitions also implement SMP: VCPU New hypercalls required IOMMU is supported: Paritions can use DMA Board evaluation shows: Little overhead caused by XtratuM internals (CS, hypercalls) Almost parallel access to the L2 content (128-bit bus width)