手头正好有 ldd2 就翻了一下。其中有使用计数(usage count)似乎和这个有关。 书中讲:为了确定模块是否能够安全卸载,系统为每个模块保留一个使用计数。因为在模块忙时不能卸载,所以系统需要这个信息来确定模块是否忙。 这么来看,那个模块的 Used by 为 0, 就表示目前该模块没有被使用(unused),可以卸载掉。
我以前也是这样认为的,只要那个模块的 Used by 为 0,就表明没有东西在用这个 模块,可以卸除。现在的问题是:在 sarge 2.6.8-2-686 的内核上,我有一个usb网卡在使用 usbnet 这个模块,但 lsmod 显示 Used by 为 0。奇怪?
还有一个问题,当我用 rmmod usbnet 命令卸载这个模块时,该命令无法正常执 行,持续使用CPU 99%。连kill -9 pid 也不能够将起杀掉。
这是不是内核的一个bug了? -- 肖盛文(Faris Xiao) Email:atzlinux@163.com