# Presentation: 280554

## Real-Time Linux Evaluation

- NASA Glenn Research Center
- Kalynnda Berens
- Kalynnda.Berens@grc.nasa.gov
- Richard Plastow
- Richard.Plastow@grc.nasa.gov

## Research Overview

- Compare real-time Linux variants
- Are lower-cost alternatives good enough?
- Provide projects with data to make informed decisions on operating systems
- Use a standardized test approach
- Across all real-time Linux variants
- Compatible with previous VxWorks testing
- Hardware differences prevent timing comparisons

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Variants Chosen	

- RTLinux (free version)  V3.2 pre3
- RTLinux Pro (commercial) V2.0
- RTAI V24.1.11
- Kurt
- Linux 2.6.7 Kernel
- Jaluna and/or MontaVista

- SAIC @ NASA Glenn Research Center

- SAS, 2004

**Notes:**
Should RTLinux Pro be added?

## Embedded Emulators

- Micro/Sys SBC2590
- 100 MHz pentium
- 32 MB ram
- 768K Flash Disk
- Embedded Planet EP405
- Power PC 200 MHz
- 16 MB ram

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## 58 Test Cases 

- User Space
- Kernel Space
- I/O use
- Remote Procedure Capabilities
- Inter-process Communication
- Stability

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## User Space Tests

- Memory
- Shared
- Allocation
- Leaks
- Violation
- Process Spawning
- Scheduling
- Deadlock
- Overhead

- Stability
- Program Crashes
- Error Handling
- Stress
- CPU
- Cache
- Memory
- Stack
- Scheduler

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## User Space Task Creation

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## User Space Program Forking

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Kernel Space Tests

- All User Space Tests
- Real Time Function calls
- Real Time System calls
- Configuration
- Timing

- Priority Inversion
- Load/Unload Modules
- Real Time I/O
- Task Starvation
- Scheduler Accuracy

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Timing Jitter - Harmonic

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Timing Jitter - NonHarmonic

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Context Switch Times

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Hardware Interrupts

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Software Interrupts

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Kernel Task Creation

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## I/O Tests  	  	Remote Procedures

- Serial Port
- Parallel Port
- Ethernet
- UDP
- TCP/IP
- USB
- File System
- Interrupts

- Start a task on another machine
- Start a task in user space
- Access a remote database

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## RTAI Hard drive Write Times

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## RTLinuxPro Hard drive Write Times

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Inter-Process Communication

- Shared memory space
- First-In-First-Out (FIFO) buffers
- Mutexes
- Tokens
- Critical sections

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Intertask Messages

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Semaphores

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Semaphores

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Semaphore

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Working with projects?

- Results are available for project use
- Potential Applications
- Projects will have “hard data” upon which to base a decision to use/not use a real-time Linux operating system
- Lessons learned in working with the operating Systems are documented

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Pass the information to them!

- Availability
- Current and final results available through SARP
- Final results will be also be submitted to a Linux journal
- Barriers to research
- Some OS software is a moving target
- Test case adaptation can be time consuming for other Linux-based OS’s

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Conclusions

- The three real-time Linux variants are
- Stable
- Support many processors
- Require a learning curve
- Documentation was often not complete
- Good support on user forums (answers in < 24 hrs)
- RTLinux Pro was easy to install and run, with good documentation
- VxWorks timing comparison not possible
- Testing done on borrowed hardware

- SAIC @ NASA Glenn Research Center

- SAS, 2004

## Which Real-time Linux is best?

- Depends on your system requirements
- RTLinux (free and Pro)
- Best context switch times
- Best kernel task creation times
- Least timing jitter for _non-harmonic_ tasks at high CPU usage
- Pro – best documentation, easiest to install
- RTAI
- Best interrupt response
- Best intertask messaging (single and 500 bytes)
- Least timing jitter for _harmonic_ tasks at high CPU usage
- Allows user-space “soft real-time” tasks

- SAIC @ NASA Glenn Research Center

- SAS, 2004