免费注册 查看新帖 |

Chinaunix

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

关于kernel内存限制的问题(RHEL5) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-20 14:47 |只看该作者 |倒序浏览
使用RHEL5(linux 2.6.18 ) ,打开PAE模式,可以支持到16G的内存。

http://slacksite.com/2008/03/why ... ot-embraced-64-bit/

从上面文章看,RHEL5去掉了对hugemem内核的支持(该内核在RHEL4中可以让kernel memory支持到4G),据说是因为性能问题去掉的。

如果RHEL5去掉了hugemem,那么在RHEL5中,怎么让kernel memory 支持到4G呢?

(不打开PAE,kernel memory默认只有1G,即使打开2:2,内核也最多有2G。)

[ 本帖最后由 simtiger 于 2008-8-20 14:51 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-20 14:54 |只看该作者
买intel酷睿

帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制帖子长度限制

论坛徽章:
0
3 [报告]
发表于 2008-08-20 15:09 |只看该作者
zx_wing老大,请教一个问题
把1:3 改为 2:2 还能跑吗?

论坛徽章:
0
4 [报告]
发表于 2008-08-20 15:24 |只看该作者
原帖由 flw2 于 2008-8-20 15:09 发表
zx_wing老大,请教一个问题
把1:3 改为 2:2 还能跑吗?

汗,不要叫老大。叫名字就好了。
我没试过2:2,你是想说改成2:2了,如果加载器没变还按以前的虚拟地址空间分布加载程序会出错吧?我想内核应该会提供一个值告诉加载器进程的地址空间应该怎么划分。
不是很清楚,猜想是这样的

论坛徽章:
0
5 [报告]
发表于 2008-08-20 15:32 |只看该作者
原帖由 zx_wing 于 2008-8-20 15:24 发表

汗,不要叫老大。叫名字就好了。
我没试过2:2,你是想说改成2:2了,如果加载器没变还按以前的虚拟地址空间分布加载程序会出错吧?我想内核应该会提供一个值告诉加载器进程的地址空间应该怎么划分。
不是很 ...

貌似没有这样的给ld的接口,实际上改了内核,什么都跑不起来了
一直比较奇怪这个问题

论坛徽章:
0
6 [报告]
发表于 2008-08-20 15:37 |只看该作者
原帖由 flw2 于 2008-8-20 15:32 发表

貌似没有这样的给ld的接口,实际上改了内核,什么都跑不起来了
一直比较奇怪这个问题

是用2:2那个patch改的吗?
作者应该有说明怎么做哦

论坛徽章:
0
7 [报告]
发表于 2008-08-20 17:10 |只看该作者
原帖由 zx_wing 于 2008-8-20 15:37 发表

是用2:2那个patch改的吗?
作者应该有说明怎么做哦

是我没看 等有时间看看是怎么搞的

论坛徽章:
0
8 [报告]
发表于 2008-08-21 12:38 |只看该作者
原帖由 flw2 于 2008-8-20 15:32 发表

貌似没有这样的给ld的接口,实际上改了内核,什么都跑不起来了
一直比较奇怪这个问题


猜测一下:

用户程序的地址空间布局, 是不会指定一个死的高地址的(例如3G、2G这样的); 可以用ld --verbose来查看GNU ld是怎么为应用程序做布局的。

内核的布局,在arch/x86/kernel/vmlinux.lds.S文件中,这是传给ld的连接脚本, 相当于“定制”了让ld如何生成vmlinux这个内核映像。 如果配置了2:2的选项,应该会体现在这个lds.S文件中 - 以大写的S为后缀的asm文件会经过cpp的C风格预处理, 有可能替换CONFIG_XXX宏之类。

论坛徽章:
0
9 [报告]
发表于 2008-08-21 13:03 |只看该作者
原帖由 albcamus 于 2008-8-21 12:38 发表


猜测一下:

用户程序的地址空间布局, 是不会指定一个死的高地址的(例如3G、2G这样的); 可以用ld --verbose来查看GNU ld是怎么为应用程序做布局的。

内核的布局,在arch/x86/kernel/vmlinux.lds.S ...



xuchm@xuchm:~$ strace -fe open ld --verbose >/tmp/ss
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib/libbfd-2.18.0.20080103.so", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
Process 26898 detached

这个默认脚本看来是ld编译的时候生成的,但是ld参数允许改变

ld --static test.o -o test -e main    -Ttext 0x80480

xuchm@xuchm:~$ nm test
0008149b A __bss_start
0008149b A _edata
0008149c A _end
00080480 T main
xuchm@xuchm:~$ strace ./test
execve("./test", ["./test"], [/* 40 vars */]) = 0
_exit(0)                                = ?
Process 27046 detached


就是如果2:2的话,所有的程序都得自己编译连接了,下载的软件包都无法使用

论坛徽章:
0
10 [报告]
发表于 2008-08-21 13:10 |只看该作者
原帖由 simtiger 于 2008-8-20 14:47 发表
使用RHEL5(linux 2.6.18 ) ,打开PAE模式,可以支持到16G的内存。

http://slacksite.com/2008/03/why ... ot-embraced-64-bit/

从上面文章看,RHEL5去掉了对hugemem内核的支持(该内核在 ...



我猜想那它肯定就有限制了呗。其实,解决这个的意义不大了,再过几年,企业级用户谁还用32位x86?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP