The Linux Kernel Logo

Working with the development community

  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs

Internal API manuals

  • Core API
    • Core utilities
      • The Linux Kernel API
      • Workqueue
      • General notification mechanism
      • Message logging with printk
      • How to get printk format specifiers right
      • Printk Index
      • Symbol Namespaces
      • Assembler Annotations
      • Real-time preemption
        • Theory of operation
        • How realtime kernels differ
        • Considering hardware
        • Porting an architecture to support PREEMPT_RT
        • Real-Time Kernel configuration
      • Housekeeping
    • Data structures and low-level utilities
    • Low level entry and exit
    • Concurrency primitives
    • Low-level hardware management
    • Memory management
    • Interfaces for kernel debugging
    • Everything else
  • Driver APIs
  • Subsystems
    • Core subsystems
      • Core API Documentation
        • Core utilities
          • The Linux Kernel API
          • Workqueue
          • General notification mechanism
          • Message logging with printk
          • How to get printk format specifiers right
          • Printk Index
          • Symbol Namespaces
          • Assembler Annotations
          • Real-time preemption
            • Theory of operation
            • How realtime kernels differ
            • Considering hardware
            • Porting an architecture to support PREEMPT_RT
            • Real-Time Kernel configuration
          • Housekeeping
        • Data structures and low-level utilities
        • Low level entry and exit
        • Concurrency primitives
        • Low-level hardware management
        • Memory management
        • Interfaces for kernel debugging
        • Everything else
      • Driver implementer’s API guide
      • Memory Management Documentation
      • Power Management
      • Scheduler
      • Timers
      • Locking
    • Human interfaces
    • Networking interfaces
    • Storage interfaces
    • Other subsystems
  • Locking

Development tools and processes

  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust

User-oriented documentation

  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API

Firmware-related documentation

  • Firmware
  • Firmware and Devicetree

Architecture-specific documentation

  • CPU architectures

Other documentation

  • Unsorted documentation

Translations

  • Translations
The Linux Kernel
  • Core API Documentation
  • Real-time preemption
  • View page source

Real-time preemption¶

This documentation is intended for Linux kernel developers and contributors interested in the inner workings of PREEMPT_RT. It explains key concepts and the required changes compared to a non-PREEMPT_RT configuration.

  • Theory of operation
    • Preface
    • Scheduling
    • Sleeping spin locks
    • Priority inheritance
    • Threaded interrupts
    • Summary
  • How realtime kernels differ
    • Preface
    • Locking
    • Execution context
    • Spin until ready
  • Considering hardware
    • System memory and cache
    • Hardware buses
    • Virtualization
    • Networking
    • Firmware
  • Porting an architecture to support PREEMPT_RT
    • Requirements
    • Optional features
  • Real-Time Kernel configuration
    • Introduction
    • Configuration options
    • Kernel Debug Options
    • Summary
    • References
Previous Next

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.