spin_lock_irqsave中的flag参数保存哪些信息?

时间:2019-06-06 16:33:00

标签: c linux-kernel interrupt spinlock irq

我知道sirlock的irqsave版本会记下获取锁定时的中断状态并在释放锁定时恢复中断状态。

我的疑问是,假设使用irqsave变量进行锁定时,是否总共有10个中断向量并且其中2个处于禁用状态(假设设备驱动程序已禁用这两个中断向量)。 spin_lock_irqsave()flag参数是否记下中断状态并在恢复期间仅启用8个中断?如果在状态保存到flag参数中后,其他CPU启用了这2个禁用的中断怎么办?

1 个答案:

答案 0 :(得分:2)

spin_lock_irqsave函数不会屏蔽和取消屏蔽特定的中断源。它禁用了调用处理器上所有可屏蔽中断的处理。中断自旋锁会创建不可中断的关键代码区域。