作者kaichan (呈呈)
看板LinuxDev
标题Re: [问题] 请问 kernel thread ..
时间Wed Oct 24 20:18:35 2007
※ 引述《nfsnfs (Busy)》之铭言:
: 请问可以去哪里找 kernel thread 怎麽写呀 orz
: 我找不到太多资料 :Q
: 我想要自己新增一个 kernel thread 来处理我在其他 system call 新增的讯息
: http://www.linux-mag.com/id/2195/
: http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread
: 目前小弟找到的是这两个网页感觉比较有参考价值..
: 先感谢大家了 :)
依我个人的经验
主要的那个 thread function 里面会有一个回圈
这个回圈通常是无限回圈(或是可控制终止的回圈)
上面的网页提到的一些动作
像是:
设定 current->comm, daemonize, reparent_to_init 照着做应该就可以了。
通常 set_current_state(TASK_INTERRUPTIBLE) 会跟 schedule_timeout
放在一起,如果 kernel thread 会用到其它的可能会消失的资源,请记得要
先停掉 thread 再把这些资源移掉(例:rmmod)不然就是吃 oops 了。
至於控制 thread 回圈的动作,有的是定期的(schedule_timeout),有的是用
event 的方式做。各有巧妙不同,看到没看过的做法总是令人兴奋。
我通常都是做定期的居多,用 schedult_timeout,其他的方式没有用过。大家
交流讨论一下。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.246.16
1F:→ nfsnfs:嗯嗯,多谢经验分享,我有点想作成 event 形式的.. :P 10/25 14:03