【问题标题】:How to disable interrupts and scheduler in Linux from kernelspace?如何从内核空间禁用 Linux 中的中断和调度程序?
【发布时间】:2015-06-12 17:36:23
【问题描述】:

当我的代码在内核空间中执行时,是否可以冻结所有处理器执行代码?

我需要转储大量数据,并且我需要保证数据在我的代码执行期间保持一致。

local_irq_save 和朋友只对本地 cpu 禁用...

【问题讨论】:

标签: linux linux-kernel


【解决方案1】:

我猜你正在寻找类似big kernel lock (BKL) 的东西。但这在内核版本 2.6.39 之后不可用。 因此,您需要使用更细粒度的锁定版本,例如 spin_lock_irqsave()spin_unlock_irqrestore(),它们都禁用本地 cpu 上的中断和抢占直到锁定。

但是不建议长时间持有自旋锁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多