Re: [問題] 請教有關block IO讀寫的問題??

看板LinuxDev作者 (~咖啡癮君子~)時間14年前 (2010/08/09 21:24), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《albertliao (~咖啡癮君子~)》之銘言: : ※ 引述《albertliao (~咖啡癮君子~)》之銘言: : : 大家好: : : 小弟現在遇到的狀況是 , 當我在讀寫sd card的時候sc card拔出的時候 : : AP會被設為uninterrupt並且在vfs_write(file->f_op->write..)無法返回 : : 而且AP也不會到mmc_request至mmc/sd driver這一段 , 資料的傳輸是由一個 : : mmc_queue_thread做掉 , 所以不知道AP到底是被甚麼原因給block住 , 不曉得是否有 : : 大大了解vfs_write到mmc_request這一段AP到底去了哪裡 , 或是能給我一點意見 : : 感激不盡 : : PS:當我拔除sd card有出現end_request:I/O error : : 但照理說應該會返回錯誤而且也不應該連ctrl+C也殺不掉 : 大家好,task被卡住的地方找到了, 是在page cache機制裡頭的__grab_cache_page中 : 的find_lock_page的__lock_page , task被卡在這且被設為uninterrupt , 請教有沒有 : 沒曉得mmc 的架構中哪幾個部分會涉及到sync_page的地方因為似乎是要有人去呼叫 : 這個函式才會被釋放出來(understanding the linux kernel P.639) : 感謝 不好意思這樣寫或許太過攏統 , 在__lock_page之後會卡在io_schedule , 同時 mmc_queue_thread也會在__mmc_claim_host呼叫schedule被block住 , 看樣子是應該要 找到mmc core或是driver中呼叫wake up的地方 , 但並沒有看到,不知道大家是否有甚 麼建議給我 , driver是透過怎樣的方式輾轉呼叫到wake up??? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.82.245.8

08/09 22:23, , 1F
沒看過mmc的東西,不過試試找找什麼request之類的結構變數
08/09 22:23, 1F

08/09 22:23, , 2F
或是看看有沒有哪裡去做wake_up_process之類的~~
08/09 22:23, 2F

08/27 17:42, , 3F
you can try to call mmc_request_done
08/27 17:42, 3F
文章代碼(AID): #1CO06MwJ (LinuxDev)
文章代碼(AID): #1CO06MwJ (LinuxDev)