Re: [問題] 關於interrupt是否需要lock的問題

看板LinuxDev作者 (把我id還我阿......)時間16年前 (2010/02/20 18:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/7 (看更多)
※ 引述《musicguitar ()》之銘言: : 想請問. : 如果使用一個share的interrupt.也就是除了我自己的裝置會觸發這個中斷 : 其他裝置也會觸發. : (實際上這個是X86裡的IRQ9.ACPI interrupt,我需要知道GPE0 觸發訊號) : 我是否需要做spin lock或是semaphore去做lock的動作. 需要 lock 與否,是取決你要存取的資料是否共享 而不是因為 irq 是不是共用 : 因為我在kernel 2.6.32使用這兩個lock都會出現kernel error(類似kernel bug)的訊息. : 我的ISR所做的事是去動作I2C.讀取device的暫存器. ^^^^^^^^^^^^^^^^^^ 除了你的 ISR 外,有其他的 code flow 會存取這個暫存器嗎? 另外,ISR 中,不適用 semaphore 或是其他需要 process context 的同步機制 spin lock 應該是沒問題的(需不需要是另外一回事) 如果你的 lock 是自己建的,記得初始化 如果是 lock 系統中現有的某個 lock, 那要檢查一下整個 lock 的使用情況, 你有沒有 double lock/unlock error message 可以貼上來 : 另外.我曾在kernel 2.6.29中.semaphore不會出現error.只有spin lock會! : 所以我覺得奇怪.ISR中.到底需不需要再做lock的動作. : 因為我一lock就當機了!!!所以我現在是把lock都拿掉了!! : 不知道會不會出問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.145.90
文章代碼(AID): #1BVxLKR4 (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 3 之 7 篇):
文章代碼(AID): #1BVxLKR4 (LinuxDev)