如何从kernelspace中禁用Linux中的中断和调度程序?

时间:2015-06-12 17:36:24

标签: linux linux-kernel

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

我需要转储大量数据,我需要保证数据在执行代码时保持一致。

local_irq_save和friends仅禁用本地cpu ...

1 个答案:

答案 0 :(得分:0)

我猜你在找big kernel lock (BKL)之类的东西。但是,由于内核版本 2.6.39 ,因此无法使用此功能。 因此,您需要使用更精细的锁定版本,例如spin_lock_irqsave()& spin_unlock_irqrestore(),它们都会禁用本地cpu上的中断和抢占,直到锁定为止。

但是不建议长时间保持旋转锁。