作者mikeman (Dear John)
看板LinuxDev
標題Re: [問題] create kernel thread in probe
時間Fri Jun 17 22:23:50 2011
我後來用 kthread_run 可以了,不曉得為什麼用 queu_work 會讓 kernel hang住..
不過後來有一個問題想請教一下..
用 kernel command line 提供的參數 initcall_debug 所計算的 initcall time
似乎會將 probe 的時間 與 kthread 做完的時間 做加總.
ex: probe 花 400us
kthread 花 400000 us
initcall time 花 400400 us
這樣看來.. 好像用 kthread 還是沒辦法加速 probe 的時間!?
還是說我本來就不能用 initcall 來代表 probe 完的時間?
謝謝!!
※ 引述《mikeman (Dear John)》之銘言:
: 標題: [問題] create kernel thread in probe
: 時間: Thu Jun 16 23:38:16 2011
:
:
: 簡要:
: 在 module_init create_singlethread, INIT_WORK
: 在 module_probe queue_work
:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 118.169.231.135
: 推 askacis:或許可以參考一下khubd,看kernel怎麼處理usb hub的.... 06/17 01:13
: → elleryq:我想應該是可以的~你試過以後有發現問題嗎? 06/17 13:45
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.227.244
※ 編輯: mikeman 來自: 118.169.227.244 (06/17 22:24)
1F:→ dou0228:直接用 modprobe user_module & 如何? 06/17 22:41
2F:→ mikeman:因為有特殊需求 一定得 build-in @@ 06/18 00:02
3F:→ elleryq:試著在thread裡用delay,再印出訊息,然後看log 06/18 00:42
4F:→ elleryq:看是不是真的在一段時間以後才跑 06/18 00:44
5F:→ mikeman:嗯嗯 thread 有跑到 不過似乎還是會影響initcall的時間? 06/18 01:30
6F:推 eleghost:應該不會吧, 我有使用過把伊些函數丟道 work_queue 09/25 15:24
7F:→ eleghost:這樣子probe()的時間真的少很多, 所以你這樣應該是.. 09/25 15:24
8F:→ eleghost:某部份處理有被同步機制保護, 造成互相等待的問題 09/25 15:25