Exception/Interrupt
  • Interrupts
    • Maskable interrupts
    • Nonmaskable interrupts
  • Exceptions
    • Faults
      • The saved value of eip is the address of the instruction that caused the fault, and hence that instruction can be resumed when the exception handler terminates.
      • Examples: Page Fault
    • Traps
      • Reported immediately following the execution of the trapping instruction.
      • The saved value of eip is the address of the instruction that should be executed after the one that caused the trap.
    • Aborts
      • It may be unable to store in the eip register the precise location of the instruction causing the exception.
    • Programmed exceptions
      • Occur at the request of the programmer.
      • They are often called software interrupts.
  • /path to kernel source/arch/x86/kernel/entry_32.S
  • /path to kernel source/arch/x86/kernel/irq_32.c
    • do_IRQ
      • irq_enter
      • calling flow handler
        1. desc->handle_irq
        2. generic_handle_irq
          • selects and activates the proper handle_irq function from the IRQ database
      • irq_exit
  • Context
  • When the kernel is running directly on behalf of a (usually) user-space process; the code which implements system calls is one example. When the kernel is running in process context, it is allowed to go to sleep if necessary.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License