- Performance monitoring in the Linux kernel
- Debugging the kernel using traces
- LTTng
Exercise: |
Trace context switches and measure latency times |
Exercise: |
Use LTTng to trace multi-task context switches |
Third Day
Real-Time Solutions for Linux
- The specificities of Real-Time
- Why Linux is not Real-Time
- Configuration Options in Vanilla Kernel
- The Preempt_RT patch
- The co-kernel approach
Exercise: |
Install Preempt_RT and check the effect on latencies |
Xenomai
- Architecture
- Adeos
- Skins
- Shadow Threads and Scheduling Domains
- Xenomai Schedulers
- The Real-Time class schedulers
- The Weak class schedulers
- Configuring Xenomai
Exercise: |
Install Xenomai |
Exercise: |
Cross-compile an application for Xenomai |
Fourth Day
Xenomai programming
- The Xenomai Skins
- Specificities of the POSIX skin
- Programming RTDM drivers
- Creating a kernel module
- Integration in the Linux Device Model
- Xenomai traces
- Porting to Xenomai
Exercise: |
Identify and Debug Spurious Relax problems |
Exercise: |
Port an application on Xenomai and test real-time characteristics |
Exercise: |
Write a simple RTDM driver |
RTNet
- Overview of RTNet
- Architecture
- Non-determinism of Ethernet
- Time Division Multiple Access
- Configuration
- Network Programming with RTNet
Exercise: |
Add RTNet support to the Xenomai kernel |
Exercise: |
Test using udp client and server |
|