社区
Linux_Kernel
帖子详情
菜鸟求大神指导? kamlloc和kfree
blue95wind
2012-07-03 04:41:36
请问:kamlloc和kfree函数是不是配对使用的?为什么我统计出来启动内核后,前者调用几千次,后者几万次呢?
谢谢
...全文
113
6
打赏
收藏
菜鸟求大神指导? kamlloc和kfree
请问:kamlloc和kfree函数是不是配对使用的?为什么我统计出来启动内核后,前者调用几千次,后者几万次呢? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suwenqiang2011
2012-07-07
打赏
举报
回复
3楼说得有道理
deep_pro
2012-07-04
打赏
举报
回复
那么看看你的代码
kmalloc的统计代码如何写的?
blue95wind
2012-07-03
打赏
举报
回复
to deep_pro:
在内核代码中的kmalloc和kfree中累加次数并打印次数啊。烧到板子里,启动内核后,查看打印信息啊。我觉得一个kmalloc对应一个kfree呀。
deep_pro
2012-07-03
打赏
举报
回复
你怎么统计的? 不可能是在运行时吧?
一般driver的初始化过程,某个步骤失败,返回错误前就需要把之前申请的资源都释放,你能看到内核大多数goto语句都是用在错误处理释放资源上
这样 kfree 至少比kmalloc多1倍
但是10被的差距也太xx了
blue95wind
2012-07-03
打赏
举报
回复
不是吧,分支的话也不会走同等级的分支把。也就是一个kmalloc不会被两次或以上 kfree吧。
fdl19881
2012-07-03
打赏
举报
回复
你这个统计不全面 。。
前者调用后,,如果程序出现分支,后来在各个分支中调用kfree的话,当然会出现kfree过多。
内存管理器(十二)kernel内存管理----kmalloc/k
free
内存管理器(十二)kernel内存管理----kmalloc/k
free
前言 上一篇说了页的获取与释放,既然是内核内存管理,内核自然也有自己的一套内存分配与释放函数。go on! kmalloc( )--分配函数 这个函数是内核中用来分配内存...
k
free
_skb
k
free
_skb()只在skb->users为1的情况下才释放内存,否则只简单地递减skb->users,因此假设SKB有三个引用者,那么只有第三次调用dev_k
free
_skb()或k
free
_skb()时才释放内存。 dev_k
free
_skb()只是一个简单调用...
kmalloc和k
free
kmalloc和k
free
kmalloc static __always_inline void *kmalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { if (size > KMALLOC_MAX_CACHE_SIZE) return kmalloc_large(size, flags);...
dev_k
free
_skb, dev_k
free
_skb_irq和dev_k
free
_skb_any区别
在这个情况下, 统计量被更新, 调用 dev_k
free
_skb 来返回 socket 缓存给系统. 实际上, 有这个函数的 3 个变体可以调用: dev_k
free
_skb(struct sk_buff *skb); 这个版本应当在你知道你的代码不会在中断上下文中...
kzalloc和k
free
函数api使用
// kzalloc函数,基于slab分配的物理上所连续的实际的内存,kzalloc函数分配,内存中 //内容都初始化为0 #define MEM_KZALLOC_SIZE (200*1024) static char* mem_spvm; int kzalloc_init(void) { ...
Linux_Kernel
4,441
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章