备注一下,linux内核中可能会存在的 running context描述:
- NMI context (in_nmi())
- hard interrupt context (in_irq())
- soft interrupt context (in_softirq())
- in nmi/hard/soft interrupt context (in_interrupt())
- (tasklet, timer, and workqueue contexts)
- atomic context (in_atomic()). Possibly entryways are, among others, spin_lock.
- RCU context, enter with rcu_read_lock for example
- user context
参考:
https://www.kernel.org/doc/htmldocs/kernel-hacking/index.html