内核模块卸载问题
本帖最后由 zhunxun 于 2015-05-13 16:39 编辑各位老师,我写了一个简单的内核多线程模块,insmod加载时没有问题,第一次rmmod貌似看不出问题,但是lsmod后发现还在,再次rmmod这个模块就会出现模块 in use而无法卸载,求各位老师帮忙解决下啊 !!!
[
如果在加载/卸载模块的过程中发生了oops,那么这个模块就卸不掉了。
注意图片里模块状态是0E-
有些hack的解决方案,需要修改内核里module数据结构的状态。
bbs.csdn.net/topics/390985154 (第一个链接)
回复 2# nswcfd
我想问下,我lsmod后显示的我的那个模块的引用计数是-1啥意思啊
把你的init函数贴出来,猜测你的线程没有判断stop信号。 回复 4# 镇水铁牛
这是init 和exit函数,加载的时候是没问题的,我觉得问题可能出在exit上,但是擦觉不了问题,您帮忙看看呗!!多谢
请指教!!!
方便把dmesg的opps打印贴的更全一些吗?(在时间戳1568附近的) 本帖最后由 镇水铁牛 于 2015-05-14 21:05 编辑
zhunxun 发表于 2015-05-14 08:45 static/image/common/back.gif
回复 4# 镇水铁牛
这是init 和exit函数,加载的时候是没问题的,我觉得问题可能出在exit上,但是擦觉不 ...
代码贴全点,估计thread_fun1和thread_fun2异常退出导致的。 老师已经解决了,不过我还对那个thread_should_stop()方法有点疑问,它作用到底是啥,文档我看不大明白啊,能指点下不???是要检查当前线程是否应该退出吗??
回复 7# 镇水铁牛
你看kthread_stop和kthread_should_stop的实现,就能明白了 唉,我要是能看懂我就不问了大哥啊,初学linux,这个真看不懂
你看就给我讲下呗!
回复 9# 镇水铁牛
页:
[1]