免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: s.t_seeyou
打印 上一主题 下一主题

需要从kernel 中得到内存的大小,从那里得到比较方便? [复制链接]

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
21 [报告]
发表于 2009-12-09 22:05 |只看该作者
原帖由 zestsh 于 2009-12-9 21:38 发表
请问仁兄的代码的内核版本是多少?我找到的相应代码不一样,static int meminfo_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) -> static int meminfo_proc_show(struct s ...


我的是 Linux-2.6.32正式发布版本
估计git pull出来的还是有这个实现的
最近没有什么改动

论坛徽章:
0
22 [报告]
发表于 2009-12-18 17:41 |只看该作者
通过这个变量找到的不一定准确,如果要在mem_init之前也是用不了的。
例如:如果我在mem_init之前分配了内存,并且没有释放回去,那统计到的物理内存是不准确的。
这个变量只是统计到了buddy可以的物理内存.

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
23 [报告]
发表于 2009-12-18 18:00 |只看该作者
原帖由 hb12112 于 2009-12-18 17:41 发表
通过这个变量找到的不一定准确,如果要在mem_init之前也是用不了的。
例如:如果我在mem_init之前分配了内存,并且没有释放回去,那统计到的物理内存是不准确的。
这个变量只是统计到了buddy可以的物理内存.


有什么好点的方法共享一下吧

论坛徽章:
0
24 [报告]
发表于 2009-12-19 12:39 |只看该作者
1 BIOS会在前1M的内存里写入相应硬件信息,读出相应信息进行统计,之前看到过一段相关代码。改天找到传上来。
2 通过E820或bootmem 结构中获得相关信息(没试过,只是觉得可行)

论坛徽章:
0
25 [报告]
发表于 2009-12-23 13:43 |只看该作者
也可以从 boot导给kernel 的cmdline参数中分析出来,

void __init prom_init(void){


prom_argv = (char **) fw_arg1;

}

论坛徽章:
0
26 [报告]
发表于 2009-12-23 18:33 |只看该作者
就用si_meminfo()好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP