Exception/Interrupt
- entry path
- exit path
- IRQ Descriptor
- chip specific functions
- irq_handler function/irqaction
- IRQ flags
- flow handling
- registering irq/requiest_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
- Bottom Halves
- No matter how many CPUs you have, no two BHs will run at the same time
- timer BH
- (include/linux/timer.h)
- local_bh_disable/local_bh_enable
- prevent softirqs, tasklets and bottom halves from running on the current CPU.
- disable soft interrupts on the local CPU, and restore them.
- Context
- Process Context
- 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: 20, last_edited: 1237196203|%e %b %Y, %H:%M %Z (%O ago)





