找回密码
 注册
查看: 1678|回复: 7

想让kernel支持16K的页,在load elf的时候卡住

[复制链接]
发表于 2003-8-11 10:40:08 | 显示全部楼层 |阅读模式
由于elf文件规定死了对齐为0x1000即4k页大小.
那么我在elf_map的时候检查offset,十有八九不是16k对齐.
前辈们好象做过这方面的尝试,我也不知道他们是如何成功的.
发表于 2003-8-11 22:28:02 | 显示全部楼层
what u mean let kernel support 16k page. u modify kernel code? or  u use the super page? or sth else?
回复

使用道具 举报

 楼主| 发表于 2003-8-11 22:43:37 | 显示全部楼层
谢谢你的及时回复,不过现在把这个问题想明白了.我是要改动页的大小,让其首先支持大页,然后最终支持多页大小,来提高系统的性能.
回复

使用道具 举报

发表于 2003-8-11 23:31:46 | 显示全部楼层
linux already have super page support, is that not enough?

how do u solve u elf problem? share with us? thx      
回复

使用道具 举报

 楼主| 发表于 2003-8-12 08:50:10 | 显示全部楼层
我的工作是基于mips体系结构的,
在load一个elf文件到内核运行的时候,
需要把这个文件map到一个内存空间vma,
将来对文件的访问就成了对内存数组的访问.

但是由于可执行文件在elf文件中大致要分成data段和text段,
这两个段的属性显然不会相同,所以要影射到两个不同的vma.
问题就出在这里:
在影射data段的时候,
内核要检查data段在文件中的偏移,
这个偏移根据elf文件的规范,
是要4k对齐的,
如果内存的页大小是16k,
在do_mmap开始检查offset的偏移时,
必然会出错,而不进行mmap空间的建立.

其实,我觉着这种检查过分严厉,
也许有别的目的,在这里只是出于实验的目的,
我就不再检查.
也许后面还有问题,
不过车到山前必有路.

你说的super page,
我在网上也大体看到过,
它集成在主流内核中了吗?从哪个版本开始?
如果没在主流内核中,你能大致介绍一下,或者给点资料看吗?

谢谢先.
回复

使用道具 举报

发表于 2003-8-12 11:41:33 | 显示全部楼层
2.6.0 has super page, but i think that super page may not be suitable for u. u work is interesting. but i think if the page size in mips is 16k, elf should be able to consider it. no idea on mips. even on arm. although i use it for arm for one year.

sigh. too much need to learn.
回复

使用道具 举报

发表于 2003-8-12 23:04:05 | 显示全部楼层
yes, they are base on mips. no detail information though.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-11 01:27 , Processed in 0.029148 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表