mywiki:linux:linux_kernel_notes
Table of Contents
Kernel Context knowledge
| process context | includes user context, kernel thread, work queue | |
| User Context | The kernel executing on behalf of a particular process (ie. a system call or trap, ioctl, module_init, module_exit or kernel thread, workqueue. You can tell which process with the current macro.) Not to be confused with userspace. Can be interrupted by software or hardware interrupts. | |
| Userspace (not kernel) | A process executing its own code outside the kernel | |
| Interrupt context | includes hard irq, kernel timer, softirq, tasklet | if in_interrupt() true |
| Hardware IRQ | Hardware interrupt request | if in_irq() true |
| Softirq | Software interrupt handler. in_irq() returns false; in_softirq() returns true. Tasklets and softirqs both fall into the category of 'software interrupts'. Strictly speaking a softirq is one of up to 32 enumerated software interrupts which can run on multiple CPUs at once. Sometimes used to refer to tasklets as well (ie. all software interrupts). | if in_irq() false and in_softirq() true |
| Tasklet | A dynamically-registered software interrupt, which is guaranteed to only run on one CPU at a time | |
| Timer | which is running at (or close to) a given time. When running, it is just like a tasklet (in fact, they are called from the TIMER_SOFTIRQ). |
mywiki/linux/linux_kernel_notes.txt · Last modified: by 127.0.0.1
