作者albertliao (~咖啡瘾君子~)
看板LinuxDev
标题Re: [问题] 请教有关block IO读写的问题??
时间Mon Aug 9 21:24:35 2010
※ 引述《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
1F:推 askacis:没看过mmc的东西,不过试试找找什麽request之类的结构变数 08/09 22:23
2F:→ askacis:或是看看有没有哪里去做wake_up_process之类的~~ 08/09 22:23
3F:推 guestl:you can try to call mmc_request_done 08/27 17:42