[問題] wake_up_interruptible 是否要加lock

看板LinuxDev作者 (carl)時間11年前 (2013/04/29 15:47), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
借一下這個連結的例子 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包起來呢?? -- http://blog.carlcarl.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.184.171

04/30 00:26, , 1F
我覺得不用,flag亂插也只有一個值,WQ空了也不會怎樣
04/30 00:26, 1F

04/30 12:56, , 2F
是想說如果在中間的時候 在別的地方剛好把flag設成0
04/30 12:56, 2F

04/30 12:56, , 3F
這樣好像會有問題(?)
04/30 12:56, 3F

05/01 00:10, , 4F
那這樣為何要包著WAKE UP?你需要的似乎是ATOMIC運算而不
05/01 00:10, 4F

05/01 00:10, , 5F
不是CRITICAL SECTION
05/01 00:10, 5F

05/01 23:01, , 6F
atomic運算? 可以請問一下譬如哪些嗎@@"
05/01 23:01, 6F
文章代碼(AID): #1HVYMVT8 (LinuxDev)