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.
- Faults
- entry path
- exit path
- IRQ Descriptor
- chip specific functions
- irq_handler function/irqaction
- IRQ flags
- flow handling
- registering irq/request_irq
- freeing irq
- disable/enable irq
- registering interrupt handlers
- /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
- desc->handle_irq
- generic_handle_irq
- selects and activates the proper handle_irq function from the IRQ database
- irq_exit
- do_IRQ
- Context
- Process Context(can sleep)
- Hardware Interrupt Context
- Software Interrupt Context
- Interrupt Context
- Atomic 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.
page revision: 66, last edited: 21 Jul 2017 02:14