想让kernel支持16K的页,在load elf的时候卡住
由于elf文件规定死了对齐为0x1000即4k页大小.那么我在elf_map的时候检查offset,十有八九不是16k对齐.
前辈们好象做过这方面的尝试,我也不知道他们是如何成功的. what u mean let kernel support 16k page. u modify kernel code? oru use the super page? or sth else? 谢谢你的及时回复,不过现在把这个问题想明白了.我是要改动页的大小,让其首先支持大页,然后最终支持多页大小,来提高系统的性能. linux already have super page support, is that not enough?
how do u solve u elf problem? share with us? thx:-D:-D:-D 我的工作是基于mips体系结构的,
在load一个elf文件到内核运行的时候,
需要把这个文件map到一个内存空间vma,
将来对文件的访问就成了对内存数组的访问.
但是由于可执行文件在elf文件中大致要分成data段和text段,
这两个段的属性显然不会相同,所以要影射到两个不同的vma.
问题就出在这里:
在影射data段的时候,
内核要检查data段在文件中的偏移,
这个偏移根据elf文件的规范,
是要4k对齐的,
如果内存的页大小是16k,
在do_mmap开始检查offset的偏移时,
必然会出错,而不进行mmap空间的建立.
其实,我觉着这种检查过分严厉,
也许有别的目的,在这里只是出于实验的目的,
我就不再检查.
也许后面还有问题,
不过车到山前必有路.
你说的super page,
我在网上也大体看到过,
它集成在主流内核中了吗?从哪个版本开始?
如果没在主流内核中,你能大致介绍一下,或者给点资料看吗?
谢谢先. 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. yes, they are base on mips. no detail information though.
页:
[1]