免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8527 | 回复: 11
打印 上一主题 下一主题

关于linux 内核内存分配问题 card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL); [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-05 16:43 |只看该作者 |倒序浏览
card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL);                                       
if (!card)                                       
return ERR_PTR(-ENOMEM);                                       
比如下面这个函数,在什么情况下才可以人为的使kzalloc(sizeof(struct mmc_card), GFP_KERNEL);       
分配内存失败,然后执行return ERR_PTR(-ENOMEM);  
本人现在做测试了,想给这些内存分配失败的代码给覆盖到,可是想不出什么办法,在这请教各位高手了,小弟不胜感激。

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
2 [报告]
发表于 2011-09-05 17:09 |只看该作者
关注!

论坛徽章:
0
3 [报告]
发表于 2011-09-05 20:06 |只看该作者
我有个想法就是,编写一个.ko,当系统起来后插入,让其一直分配kernel内存,不知这样是否可行?还有就是怎样查看kernel的内存的使用情况?

论坛徽章:
0
4 [报告]
发表于 2011-09-05 20:07 |只看该作者
我有个想法就是,编写一个.ko,当系统起来后插入,让其一直分配kernel内存,不知这样是否可行?还有就是怎样查看kernel的内存的使用情况?

论坛徽章:
0
5 [报告]
发表于 2011-09-07 10:49 |只看该作者
跪求高手指点

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2011-09-07 11:19 |只看该作者
回复 1# yide1728
直接给 card = NULL

论坛徽章:
0
7 [报告]
发表于 2011-09-07 11:54 |只看该作者
没有明白你的问题,你是想在你的驱动中所有kzalloc都这样呢?还是逐步的针对每个kzalloc往下执行?
如果是后者,看起来比较难难办吧。

论坛徽章:
0
8 [报告]
发表于 2011-09-07 20:39 |只看该作者
回复 7# tobeychen


  就是当系统启动的时候,针对代码中某些kzalloc 使其分配失败,然后执行判断分支。

论坛徽章:
0
9 [报告]
发表于 2011-09-07 20:41 |只看该作者
回复 6# Godbach


    要是直接赋值NULL的话,就是去了测试意义了,能不能在前面加些代码使其给内存占满?然后其kzalloc 就会fail掉

论坛徽章:
0
10 [报告]
发表于 2011-09-07 23:08 |只看该作者
card == NULL达不到实际的效果,我们可以想象,如果设备内存的确不足了导致这里分配失败,那很多结果都是无法预料的。
如果真要模拟可以搞个驱动循环分配内存,直到内存分配的临界点,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP