Linux Device Driver - tasklet

收錄在 Ameba 的 100篇

前篇 : 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 和區別



留言

熱門文章