Re: [问题] 新手spinlock使用时机?

楼主: bendog (bendog)   2015-08-08 23:45:43
会使用spinlock 表示有共享的资料可能会同时被读写,在kernel的话,要特别注意读写
的时机点的context, 比如irq, bottom-half, normal kernel context。举个例子, 假
设当前程式处于normal kernel context 呼叫spinlock(a), 这时 interrupt出现,cpu
跑去执行interrupt。如果 ,所执行的interrupt handler刚好呼叫叫spinlock(a)。就de
adlock了。因此,在normal kernel context,要呼叫spinlock +irq_disable.先让cpu不
会跑去执行interrupt,才不会在critical section被interrupt 中断。至于在irq_contex
t,呼叫spinlock 就好。
kernel 有个API 是做spinlock +irq_disable不过我忘记名称了。
作者: soga0806 (巴欧萨给路嘎)   2015-08-09 01:53:00
非常感谢你的分享~推推!
作者: aweilin   2015-08-18 22:49:00
spin_lock_irqsave?

Links booklink

Contact Us: admin [ a t ] ucptt.com