mywiki:linux:linux_kernel_notes
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| mywiki:linux:linux_kernel_notes [2015/04/02 15:03] – created shaoguoh | mywiki:linux:linux_kernel_notes [2019/09/15 18:55] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | | | IRQ Handler A | IRQ Handler B | Softirq A | Softirq B | Tasklet A | Tasklet B | Timer A | Timer B | User Context | + | | [[http:// |
| - | | IRQ Handler | + | ===== Kernel Context knowledge ===== |
| - | | IRQ Handler B | spin_lock_irqsave() | None | | + | | process context |
| - | Softirq A spin_lock_irq() spin_lock_irq() spin_lock() | + | | User Context | The kernel executing on behalf of a particular process (ie. a system call or trap, ioctl, module_init, |
| - | Softirq | + | | Userspace (not kernel) | A process executing its own code outside the kernel |
| - | Tasklet A spin_lock_irq() spin_lock_irq() spin_lock() spin_lock() None | + | | Interrupt context | includes hard irq, kernel timer, softirq, tasklet |
| - | Tasklet | + | | Hardware IRQ | Hardware interrupt request | if in_irq() true | |
| - | Timer A spin_lock_irq() spin_lock_irq() spin_lock() spin_lock() spin_lock() spin_lock() None | + | | Softirq |
| - | Timer B spin_lock_irq() spin_lock_irq() spin_lock() spin_lock() spin_lock() spin_lock() spin_lock() None | + | | Tasklet |
| - | User Context A spin_lock_irq() spin_lock_irq() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() None | + | | Timer | which is running at (or close to) a given time. When running, it is just like a tasklet |
| - | User Context B spin_lock_irq() spin_lock_irq() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() spin_lock_bh() down_interruptible None | + | |
mywiki/linux/linux_kernel_notes.1427958223.txt.gz · Last modified: (external edit)
