当我的代码在内核空间中执行时,是否可以卡住所有处理器执行代码?
我需要转储大量数据,并且需要保证数据在我的代码执行期间保持一致。
local_irq_save 和 friends 仅对本地 cpu 禁用...
最佳答案
我猜您正在寻找类似大内核锁 (BKL)
的东西。但这在内核版本 2.6.39 之后不可用。
因此,您需要使用更细粒度的锁定版本,如 spin_lock_irqsave()
和 spin_unlock_irqrestore()
,它们都禁用本地 cpu 中断和抢占,直到锁定被持有。
但是,不建议长时间持有自旋锁。
关于linux - 如何从内核空间禁用 Linux 中的中断和调度程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30809089/