gpt4 book ai didi

linux-kernel - 避免自旋锁死锁

转载 作者:行者123 更新时间:2023-12-05 06:46:06 25 4
gpt4 key购买 nike

假设一个设备函数持有一个自旋锁来控制对设备的访问。持有锁时,设备会发出中断,从而导致中断处理程序运行。中断处理程序在访问设备之前,也必须获得锁。

假设中断处理程序与最初取出锁的代码在同一个处理器中执行。

知道持有自旋锁会禁用相关处理器上的抢占,持有自旋锁的代码是否有可能在另一个处理器上执行(因为这个处理器上的抢占)? (我们假设这是一台SMP机器)

最佳答案

Is it possible that the code that holds the spinlock be executed on another processor (because of preemption on this processor)?

不,代码只是一直等待中断处理程序返回。

只需使用 spin_lock_irq*(),或者如果您还想防止 softirqs/tasklets,则使用 spin_lock_bh()

关于linux-kernel - 避免自旋锁死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18549018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com