[問題] wake_up_interruptible 是否要加lock

作者: carlcarl (carl)   2013-04-29 15:47:39
借一下這個連結的例子
http://bbs.chinaunix.net/forum.php?mod=viewthread&action=printable&tid=784492
{u32 i;
u16 *buff1;
u32 *buff2;
buff2=kmalloc(128,GFP_KERNEL);
wait_event_interruptible(wq,flags!=0);
..............................
}
在中断处理函数中
{
printk("interrupt 5 is working\n");
flags=1;
wake_up_interruptible(&wq);
}
請問在這情況下 flag=1和wake_up_interruptible是否需要用spin lock包起來呢??
作者: mayasky ( )   2013-04-30 00:26:00
我覺得不用,flag亂插也只有一個值,WQ空了也不會怎樣
作者: carlcarl (carl)   2013-04-30 12:56:00
是想說如果在中間的時候 在別的地方剛好把flag設成0這樣好像會有問題(?)
作者: mayasky ( )   2013-05-01 00:10:00
那這樣為何要包著WAKE UP?你需要的似乎是ATOMIC運算而不不是CRITICAL SECTION
作者: carlcarl (carl)   2013-05-01 23:01:00
atomic運算? 可以請問一下譬如哪些嗎@@"

Links booklink

Contact Us: admin [ a t ] ucptt.com