Linux Device Driver - tasklet
收錄在 Ameba 的 100篇
前篇 : Linux Device Driver Proc
前篇 : Linux Device Driver Proc
第五章開始, 談到面試常考題 : spin lock, mutex, semaphore,
這類資源共享競爭的問題
而這邊若要深入了解, 得了解 Linux 的多工,
可以先跳到 7.5 , 先了解 Linux 的 tasklet
我們先來跑個程式看看
測試程式 : testwifi-tasklet
- 相關如 DECLARE_TASKLET, struct tasklet_struct , 是宣告在
linux/interrupt.h
- tasklet 執行完後就結束了,
- tasklet_schedule : 調度一個 task 執行, 可以 schedule 自己 再執行.
- tasklet_kill 可以把 task 從 queue 中移除, 如果已經執行則等待執行結束.
- tasklet 在 softirq.c 中實現.
dmesg 看結果 :
module init start : 4
module init reg = 0
t1() on cpu 3
t2() on cpu 3
t3() on cpu 3
t2() on cpu 3
.....
$ rmmod
module exit start
t2() on cpu 3
t3() on cpu 3
module exit success : 4
下一篇 我們來看看 work queue 和區別
留言
張貼留言