- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
local_bh_disable
禁用下半部分(softirqs)的处理。 Softirq 在中断返回路径或 ksoftirqd-(per cpu)-thread 上进行处理,如果系统遭受严重的 softirq-load,该线程将被唤醒。preempt_disable
禁用抢占,这意味着当线程在 preempt_disable
内执行时<-> preemt_enable
范围,它不会被调度程序置于 sleep 状态。
这意味着,如果当前线程在该范围内时发生系统定时器中断,它可能会更新调度程序的计费表,但不会将上下文切换到另一个线程。这包括softirqd。local_irq_disable
或 local_irq_save
禁用本地 cpu 的中断。这意味着本地 cpu 不会对任何 irq 使用react,因此它不会运行任何中断返回路径,因此无法在那里运行 softirq。
假设我的上述陈述是正确的(我不确定),那么调用 local_bh_disable
不是多余的在您调用 preempt_disable
之后和 local_irq_save
(在进程上下文中)?
最佳答案
是的。一旦调用了 local_irq_save/disable,就不需要进一步的保护——你不会被打断(除了 NMI 或代码中的异常)。
但是,您通常会发现一些代码被设计为可从不同的上下文调用,因此它们可能会为某些最终在某些路径中冗余的子操作提供保护。
关于multithreading - local_bh_disable, preempt_disable, local_irq_disable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260087/
local_bh_disable禁用下半部分(softirqs)的处理。 Softirq 在中断返回路径或 ksoftirqd-(per cpu)-thread 上进行处理,如果系统遭受严重的 sof
英特尔 ( link) 的以下论文描述了一种准确地对代码进行基准测试的方法。基准测试的核心内容如下(见第 31 页): preempt_disable(); raw_local_irq_save(fl
Linux内核中的原始代码是: static inline void __raw_spin_lock_irq(raw_spinlock_t *lock) { local_irq_disable
我是一名优秀的程序员,十分优秀!