Introduction to Realtime Linux Jan Altenberg Linutronix GmbH Jan - - PowerPoint PPT Presentation

introduction to realtime linux
SMART_READER_LITE
LIVE PREVIEW

Introduction to Realtime Linux Jan Altenberg Linutronix GmbH Jan - - PowerPoint PPT Presentation

Introduction to Realtime Linux Jan Altenberg Linutronix GmbH Jan Altenberg Linutronix GmbH 1 Overview 3 Results: Which latencies can be achieved with the different Linutronix GmbH Jan Altenberg 4 Conclusion . . approaches? . . . 2


slide-1
SLIDE 1

Introduction to Realtime Linux

Jan Altenberg

Linutronix GmbH

Jan Altenberg Linutronix GmbH 1

slide-2
SLIDE 2

Overview

. . 1 What is Realtime? . . 2 Linux and Realtime . . 3 Results: Which latencies can be achieved with the different

approaches?

. . 4 Conclusion

Jan Altenberg Linutronix GmbH 2

slide-3
SLIDE 3

What is Realtime?

Fast execution time?

Jan Altenberg Linutronix GmbH 3

slide-4
SLIDE 4

What is Realtime?

Performance?

Jan Altenberg Linutronix GmbH 4

slide-5
SLIDE 5

What is Realtime?

It's all about DETERMINISM!

Jan Altenberg Linutronix GmbH 5

slide-6
SLIDE 6

What is Realtime?

Correctness means execution at the correct time Missing the timeslot will lead to an error condition

Jan Altenberg Linutronix GmbH 6

slide-7
SLIDE 7

Realtime

Remember!

Missing the timeslot will lead to an error condition

Jan Altenberg Linutronix GmbH 7

slide-8
SLIDE 8

Realtime

Missing the timeline

will cause a damage to your machine or even a person might get hurt:

Jan Altenberg Linutronix GmbH 8

slide-9
SLIDE 9

What about ''Softrealtime''?

…PLEASE PLEEAAASSEEE forget about this word!!! :)

Jan Altenberg Linutronix GmbH 9

slide-10
SLIDE 10

Who is using it?

industry / automation multimedia systems aerospace fjnancial services …

Jan Altenberg Linutronix GmbH 10

slide-11
SLIDE 11

Requirements

Deterministic timing behaviour Preemption Priority Inheritance / Priority Ceiling

Jan Altenberg Linutronix GmbH 11

slide-12
SLIDE 12

Priority Inversion

Jan Altenberg Linutronix GmbH 12

slide-13
SLIDE 13

Approaches

Dual-Kernel In-Kernel / Single Kernel

Jan Altenberg Linutronix GmbH 13

slide-14
SLIDE 14

Dual-Kernel

Jan Altenberg Linutronix GmbH 14

slide-15
SLIDE 15

Single-Kernel

Jan Altenberg Linutronix GmbH 15

slide-16
SLIDE 16

RTAI

  • Prof. Paolo Mantegazza, University of Milano

Dual-Kernel approach Realtime in kernelspace Realtime in userspace very limited Design goal: Lowest latencies Supported platforms: x86, x86_64, and a couple of ARM platforms

Jan Altenberg Linutronix GmbH 16

slide-17
SLIDE 17

RTAI

Jan Altenberg Linutronix GmbH 17

slide-18
SLIDE 18

Xenomai

Founded 2001 Realtime in userspace Skins can emulate the API of different RTOSes Dual-Kernel approach Supported platforms: x86, x86_64, PowerPC, ARM, ia64

Jan Altenberg Linutronix GmbH 18

slide-19
SLIDE 19

Xenomai

Jan Altenberg Linutronix GmbH 19

slide-20
SLIDE 20

Known issues of dual-kernel approaches

Special API Special tools and libraries Microkernel needs to be ported for new HW and new Linux versions Bad scaling on big platforms

Jan Altenberg Linutronix GmbH 20

slide-21
SLIDE 21

Preempt RT

In-Kernel approach Founded by: Thomas Gleixner, Ingo Molnar Huge community Most of the features already made it into ''Mainline'' POSIX realtime Highly accepted in the community

Jan Altenberg Linutronix GmbH 21

slide-22
SLIDE 22

Preempt RT und Mainline

''Controlling a laser with Linux is crazy, but everyone in this room is crazy in his own way. So if you want to use Linux to control an industrial welding laser, I have no problem with your using Preempt RT'' - Linus Torvalds auf dem Kernel Summit 2006

Jan Altenberg Linutronix GmbH 22

slide-23
SLIDE 23

How Preempt RT brings Realtime to Linux?

Remember once again…

Preemption is the most important requirement for a Realtime System

Jan Altenberg Linutronix GmbH 23

slide-24
SLIDE 24

How Preempt RT brings Realtime to Linux?

Locking Primitives: Spinlocks are replaced by RT Mutexes. Raw Spinlocks behave like the original Spinlocks. Interrupt Handlers run in a kernel thread

Jan Altenberg Linutronix GmbH 23

slide-25
SLIDE 25

Preempt RT

Jan Altenberg Linutronix GmbH 24

slide-26
SLIDE 26

Latency Measurements on a Cortex A9 platform

ARM Cortex A9 SOC (Altera Cyclone V) System load: 100% CPU load with hackbench IRQ tests at 10 kHz with the OSADL Latency Box Test duration 12h

Jan Altenberg Linutronix GmbH 25

slide-27
SLIDE 27

Load scenario: hackbench

Starts n groups of 20 clients and 20 servers Each client sends 100 messages to each server via a socket connection

Jan Altenberg Linutronix GmbH 26

slide-28
SLIDE 28

What has been measured?

Latency and Jitter

Jan Altenberg Linutronix GmbH 27

slide-29
SLIDE 29

Latency measurement

Jan Altenberg Linutronix GmbH 28

slide-30
SLIDE 30

Userspace Latency: The most important usecase

The most important usecase is the latency of a userspace task. Usually a userspace task needs to be synced with an external event.

Jan Altenberg Linutronix GmbH 29

slide-31
SLIDE 31

Xenomai: latency userspace task

Jan Altenberg Linutronix GmbH 30

slide-32
SLIDE 32

PREEMPT_RT: latency userspace task

Jan Altenberg Linutronix GmbH 31

slide-33
SLIDE 33

PREEMPT_RT: latency userspace task (isolated CPU)

Jan Altenberg Linutronix GmbH 32

slide-34
SLIDE 34

Latency userspace task - comparison

Jan Altenberg Linutronix GmbH 33

slide-35
SLIDE 35

Latency within the Kernel

…or how to compare apples with pears!! ;-)

Jan Altenberg Linutronix GmbH 34

slide-36
SLIDE 36

Latency: Kernel - Xenomai

Jan Altenberg Linutronix GmbH 35

slide-37
SLIDE 37

Latency: Kernel - PREEMPT_RT

Jan Altenberg Linutronix GmbH 36

slide-38
SLIDE 38

Latency: Kernel - PREEMPT_RT (isolated CPU)

Jan Altenberg Linutronix GmbH 37

slide-39
SLIDE 39

Latency: Kernel - PREEMPT_RT with FIQ (fast interrupt)

Jan Altenberg Linutronix GmbH 38

slide-40
SLIDE 40

Latency: Kernel - Comparison

Jan Altenberg Linutronix GmbH 39

slide-41
SLIDE 41

Conclusion

PREEMPT_RT became the de-facto standard for Realtime Linux Integration of PREEMPT_RT in Mainline Linux Simple usage of PREEMPT_RT Microkernels are hard to handle For the most common use-cases the Microkernels do NOT have better latencies FIQs offer fast latencies, but are hard to handle

Jan Altenberg Linutronix GmbH 40

slide-42
SLIDE 42

Questions?

Jan Altenberg Linutronix GmbH 41