首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配的内存是否使一个模块被内核视为“使用”?

分配的内存是否使一个模块被内核视为“使用”?
EN

Stack Overflow用户
提问于 2013-03-03 09:59:45
回答 1查看 95关注 0票数 2

我对内核编程很陌生,目前正在使用tplink无线NIC (Atheros芯片组)的"Madwifi“驱动程序。我的内核版本是2.6.32-37 (ubuntu)。

我正在使用一个被其他人修改过的驱动程序(我不认识他们,也不能联系他们获取更多信息),我担心他们会动态地分配内存(使用kmalloc),但是没有适当地释放它。

我的问题是:

  1. 如果它们实际上没有释放分配的内存,是否会使操作系统认为模块“忙”,使其无法卸载模块?
  2. 以及如何或在哪里释放模块中分配的内存(考虑到模块应该“永远”运行)?

谢谢!

奥默。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-03 10:03:29

不是的。使用kmalloc (或其任何同事)分配内存后,不会增加模块的use-count。只要将地址(保存在指针变量中)传递给存储在某处的另一个模块/块,分配的内存的所有权就可以在任何时候改变。内核没有跟踪这一点。

内存的共享、分配和占用在很大程度上取决于编码体系结构和编码模型的选择。这是用C编写的;没有这样的规则。

处理模块使用计数的一种方法是使用kref。有关更多信息,请参见内核源树或这里中的文档/kre.txt。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15184511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档