27
Unrestricted © Siemens AG 2013. All rights reserved Image: Marcus Quigmire, licensed under CC BY 2.0 Virtualizing Real-Time Systems with Linux Siemens Corporate Technology | May 2013

Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Unrestricted © Siemens AG 2013. All rights reservedImage: Marcus Quigmire, licensed under CC BY 2.0

Virtualizing Real-Time Systems with Linux

Siemens Corporate Technology | May 2013

Page 2: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 2 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Virtualizing Real-Time Systems with Linux

Agenda

Motivation & Background

Real-Time Virtualization Basics

Linux/KVM-based Setup

A New Approach for Lowest Latency

Summary

Page 3: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 3 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Consolidation Legacy system migration

High availability Development & test environment

Images: RRZE icon set, licensed under CC BY-SA 3.0, XT PC by Sherool, licensed under CC BY-SA 3.0

• Energy saving

• Lower bill of material

• Maintenance reduction

• Integrate multiple levels of safety & security

• Stable hardware interfaces

• Multicore exploitation

4 Main Reasons to Use Virtualization

Page 4: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 4 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Real-Time Systems Can Benefit from Virtualization

Virtualizable real-time systems

• Possible scenarios

• Control systems (industry, healthcare, etc.)

• Communication systems(media streaming & switching, etc.)

• Trading systems (stocks, goods, etc.)

• …

• Primary drivers

• Consolidation

• Legacy system migration

• [Development & test]

Images: Ethernet switch by Ben Stanfield, licensed under CC BY-SA 2.0, stock market by Katrina.Tuliao, licensed under CC BY 2.0

Page 5: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 5 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Virtualizing Real-Time Systems with Linux

Agenda

Motivation & Background

Real-Time Virtualization Basics

Linux/KVM-based Setup

A New Approach for Lowest Latency

Summary

Page 6: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 6 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

RT Guests – From Very Simple to Ordinary OS

Characteristics of Real-Time Guests

Image: by Daniel Leininger, licensed under CC BY 2.0

Guest types

Hard RT guest resources

• Bare-metal (no OS)

• Classic real-time operating system (RTOS)

• Asymmetric multi-processing setup(RTOS + GPOS)

• General purpose OS with RT requirements

• CPU (bandwidth, event latency)

• Timers & clocks

• RT networks (RT Ethernet, fieldbuses, ...)

• Digital/analogue I/O interfaces

• Custom hardware

Soft RT guest resources

• Anything on the left

• Standard networks

• Mass storage

• Human-machine interfaces

• ...

Page 7: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 7 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

CPU

I/O interface

CPU

Virtualization ≠ Acceleration

CPU

I/O interface

Real-TimeSoftware

Stack

The Critical Data Path with and without Virtualization

Event Reaction

CPU

I/O interface

Real-TimeSoftware

Stack

Hypervisor

I/O interface

Real-TimeSoftware

Stack

Hypervisor

Virtual I/O

OtherGuests

vCPU

Virt. I/O

vCPU

Native real-time setup Hardware-assistedvirtualization

Resource sharing & abstractionvia emulation

Event Reaction Event Reaction

Page 8: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 8 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

RT Virtualization – Two Architectural Options

Real-Time Host OS

GuestOS

Hypervisor

Real-timeApplication

Partitioning Hypervisor

Real-timeApplication

GPOS

RTOS

I/O

RT-Hyperv.

RTOS

CPU CPU

I/O I/O

CPU CPU

I/O

Page 9: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 9 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Partitioning hypervisor RT-enhanced hosted hypervisor

• Reduced hypervisor complexity

• Simplifies safety/security validation

• Can provide better real-time properties

• Mostly static assignments

• No or limited overcommitment

• Duplication of system boot-up logic

• Often requires paravirtualization

• Non-standard management interfaces

• No industry-grade free solutions available

• Reuse of exisiting solutions possible

• Works well with common guests

• Up-to-date virtualization features

• Large user base

• Free Linux-based solution available

• Features vs. complexity

• Adding RT support can benon-trivial task

Comparison of RT-Virtualization Approaches

No “One Size Fits it All”

Page 10: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 10 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Virtualizing Real-Time Systems with Linux

Agenda

Motivation & Background

Real-Time Virtualization Basics

Linux/KVM-based Setup

A New Approach for Lowest Latency

Summary

Page 11: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 11 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

KVM – the Swiss Knife among Hypervisors

Main Components of the QEM/KVM Hypervisor Stack

• KVM subsystem

• Gatekeeper for HW- andkernel-assisted virtualization

• Virtual CPUs

• Fast device models

• Use Linux for other hypervisor tasks

• Scheduling

• Memory management

• I/O stacks

• Device pass-through (VFIO)

• ...

• User-space hypervisor QEMU

• Multi-architecture machine emulator

• Can use KVM for virtual CPUs

• Large set of device models

HypervisorProcess

(QEMU)

Linux Kernel

GuestMemory

CPU CPU

VCPU VCPU

I/O Threads

CPU

PIC, Timer

Thread Thread

Page 12: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 12 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

PREEMPT-RT enables RT-Virtualization

Role of Linux extension PREEMPT-RT

• PREEMPT-RT: fully preemptible Linux kernel

• Typical worst-case event delivery latencies: few 10 microseconds

• Integrates KVM support

• Original use-case: virtualization + native RT applications

• Allows to prioritize virtualization workload over uncritical tasks

• Can be combined with CPU isolation

• 1:1 assignment: host CPU – RT guest CPU

• Off-load all non-RT tasks(including low-priority QEMU threads)

• Warning: No 100% guest CPU load feasible!

• NO_HZ_FULL extensions work toward enabling this

Page 13: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 13 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Architecture of a KVM-based RT-Hypervisor

PREEMPT-RT +KVM on dedicated cores

Real-timeApplication

Hardware

RT-enhancedQEMU

Stand-alone RTOSor AMP Guest

Non-RTApplication

Page 14: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 14 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Decent Latencies Achievable in KVM-only Setups

• Host setup

• KVM on x86 PREEMPT-RT Linux

• Virtual machine on dedicated core

• Intel NIC (E1000 family) as I/O device,directly assigned to guest

• Permanent disk I/O load

• Guest setup

• Proprietary RTOS

• Real-time network stack

• Measurement setup

• Linux/Xenomai (native installation)

• Real-time network stack RTnet

• Periodic ICMP ping messages sent to target

• Recorded round-trip latency (error <50 µs)

=> Worst-case latency after 16h: 330 µs

RTOSGuest

RT-KVM

NIC other HW

Real-TimeLinux

with RTnet

NICother HW

Measuring I/O latency of an RT Guest

Page 15: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 15 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

RT-QEMU is Required for Emulating in Real-Time

QEMU as a Real-Time Device Emulator

• Scenarios

• Guest uses NIC A, host has NIC B attached

• Legacy devices are no longer available on a modern host

• Multiple guests share one I/O interfacefor talking to different devices (e.g. on a CAN bus)

• QEMU can handle such scenariosvia emulation

• Requirements on emulation

• Equivalent functional behavior

• Devices models need to react in timeon guest requests

• Devices models need to deliverexternal events to the guest timely

Page 16: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 16 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

VCPUVCPU

VCPUVCPU

IO-Thread

Device models I/O back-ends GUI QMP, HMP ...

VCPUVCPU

VCPUVCPU

VCPUVCPU

VCPUVCPU

VCPUVCPU

VCPUVCPU

VCPUVCPU

VCPUVCPU

Concurrency in QEMU/KVM –The Big QEMU Lock (BQL)

Page 17: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 17 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

BQL – One after the other

Page 18: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 18 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Breaking the BQL is Challenging but Feasible

Challenges in Reworking QEMU's Concurrency Scheme

• Establish lock ordering rules

• Prevent lock recursions

• Design efficient object locking andevent dispatching scheme• Which objects to track?

• Reference counting? Mutexes? RCU?

• Enable smooth transition from old to new model• Existing code base cannot be converted

in a single step

• Both models must coexists

• Incrementally convert device models and backends

• Teach new model to developers

Page 19: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 19 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Critical BQL Zones

CPUState

• Read/write access• cpu_single_env

Coalesced MMIO flushing

PIO/MMIO request-to-device dispatching

Back-end access

• TX on network layer

• Write to character device

• Timer setup, etc.

Back-end events (iothread jobs)• Network RX, read from chardev, timer signals, …

IRQ delivery

• Raising/lowering from device model to IRQ chip

• Injection into VCPU (if user space IRQ chips)

Page 20: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 20 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Virtualizing Real-Time Systems with Linux

Agenda

Motivation & Background

Real-Time Virtualization Basics

Linux/KVM-based Setup

A New Approach for Lowest Latency

Summary

Page 21: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 21 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Partitioning hypervisor RT-enhanced commodity hypervisor

• Reduced hypervisor complexity

• Simplifies safety/security validation

• Can provide better real-time properties

• Mostly static assignments

• No or limited overcommitment

• Duplication of system boot-up logic

• Often requires paravirtualization

• Non-standard management interfaces

• No industry-grade free solutions available

• Reuse of exisiting solutions

• Work well with common guests

• Up-to-date virtualization features

• Large user base

• Free Linux-based solution available

• Features vs. complexity

• Adding RT support can benon-trivial task

Comparison of RT-virtualization approaches

No “one size fits it all”

Page 22: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 22 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Hypervisor

A bare-metal hypervisor has to boot its guest

Classic type-1 hypervisor boot-up

Hardware Hardware

GPOSRT

App

1. Boot phase 2. Operational phase

Firmware/BIOS

[Boot Loader]Hypervisor

GPOS(General

Purpose OS)

Hypervisor

Page 23: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 23 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

What about postponing the hypervisor start?

Basic concept of late partitioning

Hardware Hardware

Partitioning Layer

LinuxLinux

Hardware

Partitioning Layer

LinuxRT

App

1. Boot phase 2. Partitioningphase

3. Operational phase

Firmware/BIOS

[Boot Loader]

Images

Configs

Linux

Page 24: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 24 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Jailhouse: Keep it simple, keep it open

The Philosophy of Jailhouse

• Avoid emulation, focus on hardware assisted isolation

• No overcommitment, no scheduler, static partitioning

• Directly assign physical devices, do not emulate them

• You need more? Use KVM!

• Only expose resources that are required for operation

• No boot-up phase virtualization

• Board initialization done by Linux

• Off-load uncritical tasks to Linux

• Initial setup / image loading

• Reconfigurations while in non-operational mode

• Monitoring, logging etc.

• Release as Open Source (ongoing process – stay tuned)

=> Minimal-sized hypervisor with full CPU assignment and Linux look-and-feel

Page 25: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 25 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Virtualizing Real-Time Systems with Linux

Agenda

Motivation & Background

Real-Time Virtualization Basics

Linux/KVM-based Setups

A New Approach for Lowest Latency

Summary

Page 26: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 26 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Real-Time – The Next Level for Virtualization

Summary

• Virtualization provides benefitsalso for real-time systems

• Consolidation

• Legacy migration (to multicore)

• Two approaches

• Enhance full-featured hypervisor

• Provide dedicated partitioning hypervisor

• Open Source based solutions in reach

• PREEMPT-RT + KVM + device pass-through works

• RT device emulation via QEMU is approaching

• Static partitioning as Linux feature via Jailhouse is WiP

=> Real-time system engineering remains challenging – with or without virtualization

Page 27: Siemens Corporate Technology | May 2013 Virtualizing Real ......Real-Time Systems Can Benefit from Virtualization Virtualizable real-time systems • Possible scenarios • Control

Page 27 May 2013 Jan Kiszka, Corporate Technology Unrestricted © Siemens AG 2013. All rights reserved

Any Questions?

Thank you!

Jan Kiszka <[email protected]>