rtems- smp improvement for leon multi...

35
ESA UNCLASSIFIED - For Official Use ESA | 01/01/2016 | Slide 1 RTEMS-SMP Improvement for LEON multi-core Contract No: 4000116175/15/NL/FE/as Contractor: embedded brains GmbH (Germany) TRP (95k Euro) Duration: 12 months (KO: Feb 2016, FR: May 2017) TO: M. Verhoef / T. Tsiodras

Upload: others

Post on 16-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

ESA UNCLASSIFIED - For Official Use ESA | 01/01/2016 | Slide 1

RTEMS-SMP Improvement for LEON multi-core

• Contract No: 4000116175/15/NL/FE/as

• Contractor: embedded brains GmbH (Germany)

• TRP (95k Euro)

• Duration: 12 months (KO: Feb 2016, FR: May 2017)

• TO: M. Verhoef / T. Tsiodras

Page 2: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS SMP - Ready for Launch

Sebastian Huber

embedded brains GmbH

May 8, 2017

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 1 / 30

Page 3: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Overview

Topics of this Presentation

What is RTEMS?

Overall RTEMS features

Some RTEMS SMP details

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 2 / 30

Page 4: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

What is RTEMS?

Real-Time Operating System for Multiprocessor Systems (RTEMS)

Operating system

Multi-threaded

Single address-space

No kernel-space/user-space separation

Real-time

Permissive open source license (GPLv2 with linking exception, no obligations forapplication code)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 3 / 30

Page 5: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS History

1988 RTEMS development started by On-Line Applications Research Corporation(OAR)

Classic real-time operating systemO(1) priority schedulerNon-transitive priority inheritancePriority ceiling

2008 EDISOFT tailors RTEMS 4.8.0 now used in over 20 missions, qualified to DAL-B2009 Astrium uses of tailored RTEMS 4.6.1 for space applications2014 Start of Symmetric Multiprocessing (SMP) support development

Sponsored by ESA with two parallel projects Gaisler/Airbus/OAR andSpaceBel/EB/UoPOther RTEMS users

2017 State-the-art SMP support available as a result of this project (RTEMS 4.12)

System initialization via constructorsScalable timer/timer supportGiant lock removalOMIP implementation

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 4 / 30

Page 6: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - SMP Platforms

SMP Platforms

SPARCI GR712RCI GR740

PowerPCI QorIQ (e.g. P1020, P2020, T2080, T4240, etc.)

ARMv7-AI Altera Cyclone VI Xilinx ZynqI Raspberry Pi 2

Other (ARMv8, RISC-V, x86) - just ask for support

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 5 / 30

Page 7: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - APIs

APIs

Classic

POSIX (pthreads)

C11 threads

C++11 threads

Newlib and GCC internal

Futex (synchronization via user-space atomic operations combined with futex system calls)

A broad range of standard software runs on RTEMS

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 6 / 30

Page 8: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - Programming Languages/Compiler

Programming Languages

C/C++/OpenMP (RTEMS Source Builder, RSB)

Ada

Google Go

Fortran (RSB)

Erlang

Python and MicroPython

Available Compiler

GCC (default, best supported and recommended)

LLVM/clang (works, but currently not available via RSB)

Other (not out of the box)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 7 / 30

Page 9: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - Devices

Devices

Termios (serial interfaces)

I2C (Linux user-space API compatible)

SPI (Linux user-space API compatible)

Network stacks (legacy, libbsd, lwIP)

USB stack (libbsd)

SD/MMC card stack (libbsd)

libbsd

Port of FreeBSD user-space and kernel-space components to RTEMS

Easy access to FreeBSD software for RTEMS

Support to stay in synchronization with FreeBSD

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 8 / 30

Page 10: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - Basic Infrastructure

Basic Infrastructure

C11/C++11 thread-local storage

Lock-free timestamps (FreeBSD timecounters)

Scalable timer and timeout support

Link-time configuration (RTEMS is a library)

System initialization via constructors (linker sets, similar to global C++ constructors)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 9 / 30

Page 11: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS Features - Schedulers and Locking Protocols

Clustered Scheduling

Independent scheduler instances for processor subsets (cache topology)

Flexible link-time configuration

Fixed-priority scheduler

Job-level fixed-priority scheduler (EDF)

Locking Protocols for Mutual Exclusion

Transitive priority inheritance

O(m) Independence-Preserving Protocol (OMIP)

Priority ceiling

Multiprocessor Resource-Sharing Protocol (MrsP)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 10 / 30

Page 12: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

What is new?

Symmetric Multiprocessing (SMP) Support for RTEMS

SMP machines consist of a set of processors (players) attached to a common memory (field).

The operating system provides means to ensure fair play.

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 11 / 30

Page 13: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Why use SMP?

Solve same problem faster - Amdahl’s law

Speedup(n) =1

(1− p) + pn

Solve larger problem in the same time - Gustafsons’s law

Speedup(n) = 1− p + np

Special case: Space and Time Partitioning (TSP)

No reason for SMP

Simplify application development – you use SMP since you must

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 12 / 30

Page 14: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

RTEMS SMP Details

Topics

Timestamps

Timer/Timeout Support

System Initialization

Clustered Scheduling

Locking Protocols

Plot Data: Testsuite Results

All plots are generated (Python Matplotlib) from data obtained by standard RTEMS testsuiteresuls (XML).

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 13 / 30

Page 15: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Lock-Free Timestamps

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

0

1

2

3

4

5

Opera

tion C

ount

1e8 Timestamp Performance (Software Timecounter)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

0.5

1.0

1.5

2.0

2.5

Opera

tion C

ount

1e7 Timestamp Performance (Hardware Timecounter)

void worker(void)

{

while (true) {

timestamp();

}

}

Timestamps for uptime and wall clock timePort of FreeBSD TimecountersTime synchronization via NTP and PPS possibleTimestamp performance obtained by SPTIMECOUNTER 2 test programExample platform QorIQ T4240 running at 1.5GHzWith software timecounter approximately 79 processor cycles per timestamp

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 14 / 30

Page 16: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Timer/Timeout Support

Timer

Perform an action at a certain time in the future. Timer usually expire.

Timeouts

Set time limits to actions. Timeouts hopefully expire rarely.

Timer/Timeout Implementations

Priority queues (expiration time as key), e.g. red-black treeI O(log(n)) insert and cancel operations (n active timer count)I O(m · log(n)) expire operation (m count of timer to expire)I Used by RTEMS

Timer wheel (hash table)I O(1) insert and cancel operationsI Unpredictable expiration operation runtimeI Used by network stack

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 15 / 30

Page 17: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Timer Support - Scalable with Active Timer Count

100 101 102 103 104 105

Active Timers

0

2

4

6

8

10

12

14

Tim

er In

sert

and

Can

cel [

s]

Timer Operation Performance (T4240)

Earliest Expiration TimeMiddle Expiration TimeLatest Expiration Time

100 101 102 103 104 105

Active Timers

4

6

8

10

12

14

Tim

er In

sert

and

Can

cel [

s]

Timer Operation Performance (GR740)

Earliest Expiration TimeMiddle Expiration TimeLatest Expiration Time

Timer implementation based on red-black treesTimer performance obtained by TMTIMER 1 test programExample platform QorIQ T4240 running at 1.5GHz (left)Example platform GR740 running at 250MHz (right)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 16 / 30

Page 18: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Timer Support - Scalable with Processor Count

Per-Processor Timer Maintenance

Each processor has its own data set to maintain timers

Thread operation timeouts use current processor

Timer use dedicated processor set during timer creation

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 17 / 30

Page 19: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

System Initialization via Constructors (1)

Standard System Initialization without Constructorsvoid system_init(void)

{

init_subsystem_a();

init_subsystem_b();

init_subsystem_c();

init_subsystem_d();

init_subsystem_e();

}

Disadvantage

In case a subsystem s not required by the application, it is still initialized

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 18 / 30

Page 20: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

System Initialization via Constructors (2)

System Initialization via Constructorsvoid system_init(void)

{

constructor *c = constructor_begin;

while (c != constructor_end) {

(*c->init)();

++c;

}

}

Subsystem Xvoid subsystem_x_init(void)

{

/* Some init stuff */

}

REGISTER_CONSTRUCTOR(subsystem_x_init, ORDER_X);

Advantage

Only subsystems used by the application are initialized and present in the executable

Disadvantage

Requires linker and object file format support

Used by major software systems, e.g. C++, Linux, FreeBSD, etc.

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 19 / 30

Page 21: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Low-Level Synchronization - SMP Locks

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

0.0

0.5

1.0

1.5

2.0

2.5

Operation Count

1e7 SMP Lock Performance

Ticket LockMCS LockTAS LockTTAS Lock

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

10-6

10-5

10-4

10-3

10-2

10-1

100

Norm

ed Coefficient of Variation

SMP Lock Fairness

Ticket LockMCS LockTAS LockTTAS Lock

Several options exist for low-level synchronization in SMPsystemsTest-and-set (TAS)Test and test-and-set locks (TTAS)Ticket locksMellor-Crummey Scott (MCS) locksSMP lock performance obtained by SMPLOCK 1 testprogramExample platform QorIQ T4240 running at 1.5GHz

Basic Requirement: FIFO Fairness

Ticket lock was selected as standard SMP lock for RTEMS SMP

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 20 / 30

Page 22: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Clustered Scheduling (1)

Clustered Scheduling

Independent scheduler instances for pair-wise disjoint processor subsetsSebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 21 / 30

Page 23: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Clustered Scheduling (2)

Advantages

Keep worst-case execution time (WCET) under control: SMP lock FIFO fairness ⇒WCET increases linear with processor count

Scheduler instances based on cache topology to minimize thread migration overhead(important for priority based schedulers)

Optimal choice of scheduler algorithms

Easy implementation compared to schedulers with local run queues and load balancing

Disadvantage

Thread assignment to scheduler instance is a system design decision (bin-packing problem)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 22 / 30

Page 24: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (1)

Clustered Scheduling

Temporary thread migration is required to minimize latency

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 23 / 30

Page 25: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (2)

M0 T0(P0)owner

Mutex M0 with owner thread T0 (thread priority P0)

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 24 / 30

Page 26: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (2)

M0 T0(P0, P1)ownerT1(P1) wait

Mutex M0 with owner thread T0 and priority inheritance due to waiting thread T1

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 24 / 30

Page 27: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (2)

M0 T0(P0, P1)ownerM1 T1(P1, P2)owner waitT2(P2) wait

Non-transitive priority inheritance: thread priority P2 is not propagated to thread T0

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 24 / 30

Page 28: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (2)

M0 T0(P0, P1, P2)ownerM1 T1(P1, P2)owner waitT2(P2) wait

Transitive priority inheritance: thread priority P2 is propagated to thread T0 via thread T1

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 24 / 30

Page 29: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (2)

T0(P0, P1, P2)T1(P1, P2) M0waitT2(P2) M1

wait ownerowner

Transitive priority inheritance and clustered scheduling with three scheduler instances magenta,red and blue

Thread T0 has access to all three scheduler instances while owning mutex M0

Implementation Challenge: Fine Grained Locking

Synchonization objects, threads and schedulers have dedicated SMP locks.

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 24 / 30

Page 30: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Locking Protocols for Mutual Exclusion (3)

O(m) Independence-Preserving Protocol (OMIP)

Generalization of transitive priority inheritance to clustered scheduling

Suitable for general purpose libraries

Multiprocessor Resource-Sharing Protocol (MrsP)

Generalization of priority ceiling to clustered scheduling

User must specify ceiling priorities per scheduler instance

Protocol design had schedulability analysis in mind

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 25 / 30

Page 31: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Fine Grained Locking

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

Tota

l O

pera

tion C

ount

1e8 Uncontested Mutex Performance

Self-Contained MutexClassic Mutex

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24Active Workers

2000000

3000000

4000000

5000000

6000000

7000000

8000000

Indiv

idual O

pera

tion C

ounts

Uncontested Mutex Performance

void worker(void)

{

mutex mtx;

while (true) {

mtx.acquire();

mtx.release();

}

}

Each synchronization object (mutex, message queue, counting semaphore, etc.) has itsown SMP lockVery important for average case performanceMutex performance obtained by TMFINE 1 test programExample platform QorIQ T4240 running at 1.5GHzClassic API objects are subject to false cache line sharing

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 26 / 30

Page 32: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

OpenMP

OpenMP

Compiler supported parallelization using a fork-join model

OpenMP 4.5 support via GCC provided libgomp

Highly optimized RTEMS configuration of libgomp

Uses barrier implementation of Linux based on futex system call

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 27 / 30

Page 33: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Embedded Multicore Building Blocks (EMB2)/MTAPI

EMB2

Set of C/C++ libraries providing:I Task managementI DataflowI AlgorithmsI Containers

Initially designed for embedded systems

2-clause BSD license

Developed and used by Siemens

Fully supported by RTEMS

Multicore Task Management API (MTAPI)

Open source reference implementation contained in the EMB2

Custom implementation available from Gaisler

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 28 / 30

Page 34: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Status and Future Work

Status

RTEMS SMP is the result of test driven development (RTEMS testsuite contains morethan 600 test programs)

RTEMS 4.12 release is planned for Q2-Q3 2017

RTEMS SMP is available on the GR712RC and GR740

Used on Altera Cyclone V, Xilinx Zynq and QorIQ T4240 in production systems

Next Step

Space qualification according to ECSS standards (potential GSTP G617-254SW, maybeavailable in 2019).

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 29 / 30

Page 35: RTEMS- SMP Improvement for LEON multi -coremicroelectronics.esa.int/gr740/rtems-smp-final...C11/C++11 thread-local storage Lock-free timestamps (FreeBSD timecounters) Scalable timer

Questions or Lunch?

Sebastian Huber (embedded brains GmbH) RTEMS SMP - Ready for Launch May 8, 2017 30 / 30