📊
linux-insides
  • README
  • Summary
    • Booting
      • From bootloader to kernel
      • First steps in the kernel setup code
      • Video mode initialization and transition to protected mode
      • Transition to 64-bit mode
      • Kernel decompression
      • Kernel load address randomization
    • Initialization
      • First steps in the kernel
      • Early interrupts handler
      • Last preparations before the kernel entry point
      • Kernel entry point
      • Continue architecture-specific boot-time initializations
      • Architecture-specific initializations, again...
      • End of the architecture-specific initializations, almost...
      • Scheduler initialization
      • RCU initialization
      • End of initialization
    • Interrupts
      • Introduction
      • Start to dive into interrupts
      • Interrupt handlers
      • Initialization of non-early interrupt gates
      • Implementation of some exception handlers
      • Handling Non-Maskable interrupts
      • Dive into external hardware interrupts
      • Initialization of external hardware interrupts structures
      • Softirq, Tasklets and Workqueues
      • Last part
    • System calls
      • Introduction to system calls
      • How the Linux kernel handles a system call
      • vsyscall and vDSO
      • How the Linux kernel runs a program
      • Implementation of the open system call
      • Limits on resources in Linux
    • Timers and time management
      • Introduction
      • Clocksource framework
      • The tick broadcast framework and dyntick
      • Introduction to timers
      • Clockevents framework
      • x86 related clock sources
      • Time related system calls
    • Synchronization primitives
      • Introduction to spinlocks
      • Queued spinlocks
      • Semaphores
      • Mutex
      • Reader/Writer semaphores
      • SeqLock
      • RCU
      • Lockdep
    • Memory management
      • Memblock
      • Fixmaps and ioremap
      • kmemcheck
    • Cgroups
      • Introduction to Control Groups
    • SMP
    • Concepts
      • Per-CPU variables
      • Cpumasks
      • The initcall mechanism
      • Notification Chains
    • Data Structures in the Linux Kernel
      • Doubly linked list
      • Radix tree
      • Bit arrays
    • Theory
      • Paging
      • Elf64
      • Inline assembly
      • CPUID
      • MSR
    • Initial ram disk
    • Misc
      • Linux kernel development
      • How the kernel is compiled
      • Linkers
      • Program startup process in userspace
      • Write and Submit your first Linux kernel Patch
      • Data types in the kernel
    • KernelStructures
      • IDT
    • Useful links
    • Contributors
Powered by GitBook
On this page

Was this helpful?

  1. Summary

Interrupts

PreviousEnd of initializationNextIntroduction

Last updated 2 years ago

Was this helpful?

In the following posts, we will cover interrupts and exceptions handling in the Linux kernel.

  • - describes interrupts and interrupt handling theory.

  • - describes stuffs related to interrupts and exceptions handling from the early stage.

  • - describes early interrupt handlers.

  • - describes first non-early interrupt handlers.

  • - describes implementation of some exception handlers such as double fault, divide by zero etc.

  • - describes handling of non-maskable interrupts and remaining interrupt handlers from the architecture-specific part.

  • - describes early initialization of code which is related to handling external hardware interrupts.

  • - describes non-early initialization of code which is related to handling external hardware interrupts.

  • - describes softirqs, tasklets and workqueues concepts.

  • - this is the last part of the Interrupts and Interrupt Handling chapter and here we will see a real hardware driver and some interrupts related stuff.

Interrupts and Interrupt Handling. Part 1.
Interrupts in the Linux Kernel
Early interrupt handlers
Interrupt handlers
Implementation of exception handlers
Handling non-maskable interrupts
External hardware interrupts
Non-early initialization of the IRQs
Softirq, Tasklets and Workqueues
Last part