QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 834|回复: 2

页对齐的问题

[复制链接]
发表于 2005-2-16 11:36:50 | 显示全部楼层 |阅读模式
使用shmget得到一个Huge TLB页。现在想用该页代替一个应用程序的data域(4k/page).不知道如何代替。
我自己写个函数,解析了ELF文件,得到.data的虚拟地址(例如:0x080496d4)。得到.data的长度和具体数据。想通过shmat(,(void *)(0x080496d4), )来代替data域。但是一直失败。man shmat一下. 需要page-aligned。
使用SHM_REMAP,也不行。不知道如何下手了。
那位大虾指点一下。
发表于 2005-2-16 12:37:47 | 显示全部楼层
shmat只能获得没有分配的地址,注意了,不是没有分配的页。

elf文件被装载以后,地址就已经分配完毕了,例如你的0x080496d4,虽然该地址可能并没有被分配物理内存。
回复

使用道具 举报

 楼主| 发表于 2005-2-16 14:43:38 | 显示全部楼层
在shmget中使用SHM_HUGETLB标志,可以获取一个空闲的large page.(REHL4 内核2.6.9).想用该large page(4M) 代替普通page(4k)
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-6 15:29 , Processed in 0.070627 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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