Frequently Asked Questions

From RTwiki
Revision as of 14:41, 29 September 2007 by Jaswinderlinuxrt (Talk | contribs)

Jump to: navigation, search

Contents

Intro

Author

Jaswinder Singh

Revision

Revision History
Revision 1 2007-09-29
Draft / Work in progress

Abstract

FAQ for realtime support in Linux Kernel

Sections

Question Index

1. Realtime Support questions

2. Architecture questions

3. Mailing list questions

4. Realtime Patches questions

5. Configuring/compiling questions

6. Realtime samples/Performance questions

7. Realtime Applications questions

8. Maintainers questions

Section 1 - Realtime Support questions

Q1: What is realtime support

A1:

Q2: How realtime works

A2: The RT-Preempt patch converts Linux into a fully preemptible kernel. The magic is done with:

  • Making in-kernel locking-primitives (using spinlocks) preemptible though reimplementation with rtmutexes:
  • Critical sections protected by i.e. spinlock_t and rwlock_t are now preemptible. The creation of non-preemptible sections (in kernel) is still possible with raw_spinlock_t (same APIs like spinlock_t)
  • Implementing priority inheritance for in-kernel spinlocks and semaphores. For more information on priority inversion and priority inheritance please consult Introduction to Priority Inversion
  • Converting interrupt handlers into preemptible kernel threads: The RT-Preempt patch treats soft interrupt handlers in kernel thread context, which is represented by a task_struct like a common userspace process. However it is also possible to register an IRQ in kernel context.
  • Converting the old Linux timer API into separate infrastructures for high resolution kernel timers plus one for timeouts, leading to userspace POSIX timers with high resolution.

Q3: What is the procedure to add realtime support

A3: Download latest realtime preemption patch from http://www.kernel.org/pub/linux/kernel/projects/rt/ then get related vanilla kernel from http://kernel.org then patch , configure and compile

Personal tools