免费注册 查看新帖 |

Chinaunix

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

关于虚拟机中的高端内存 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-30 15:33 |只看该作者 |倒序浏览
虚拟机版本:Vmware Workstation 6.5.2 build 156735
LINUX版本:Fedora Core 9  内核2.6.25-14.fc9.i686

虚拟机设置(截图不知道怎么发 ) 我有1G的物理内存,分配给虚拟机的内存是512M。

开机后,Linux下的内存情况如下:
[root@tlh ~]# cat /proc/meminfo
MemTotal:       515064 kB
MemFree:        259880 kB
Buffers:          8984 kB
Cached:         140816 kB
SwapCached:          0 kB
Active:         129248 kB
Inactive:       106460 kB
HighTotal:           0 kB
HighFree:            0 kB

LowTotal:       515064 kB
LowFree:        259880 kB
SwapTotal:      522104 kB
SwapFree:       522104 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:       85916 kB
Mapped:          40624 kB
Slab:            10644 kB
SReclaimable:     4756 kB
SUnreclaim:       5888 kB
PageTables:       3340 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:    779636 kB
Committed_AS:   325628 kB
VmallocTotal:   503800 kB
VmallocUsed:      2448 kB
VmallocChunk:   501016 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
HugePages_Surp:      0
Hugepagesize:     4096 kB

为什么高端内存会为0? 而在模块中用alloc_pages(GFP_KERNEL|__GFP_HIGHMEM, order)去申请高端内存时,并没有fail,用的是低端内存。

1.jpg (23.1 KB, 下载次数: 16)

1.jpg

2.jpg (36.85 KB, 下载次数: 20)

2.jpg

论坛徽章:
0
2 [报告]
发表于 2009-08-30 15:41 |只看该作者
内存管理的代码没有仔细看过,如果内核发现没有高端内存,可能申请高端内存就转化为了低端内存

论坛徽章:
0
3 [报告]
发表于 2009-08-30 15:49 |只看该作者

回复 #1 leehom_tan 的帖子

我记得 896M以上才会涉及 highmem范围

论坛徽章:
0
4 [报告]
发表于 2009-08-30 17:56 |只看该作者
恩,查了下资料,是这么说的。我把非线性映射空间和高端内存的概念搞混了。


在这篇文章(http://linux.chinaunix.net/bbs/viewthread.php?tid=1045283&extra=&page=3)中作者说:

原因是内核手头只有1G的地址空间,而其中的128M还需要留作非线性映射空间。
这样一来,内核地址空间中的3G~3G+896M便映射了0~896M范围的物理内存。
这个映射关系在启动系统时完成,并且在系统启动后不会改变。
物理内存中0~896M的这段空间是幸运的,因为它们在内核空间中有固定的住所,
这也使它们能够方便、快速地被访问。相对896M以上的物理内存,它们地址是比较低的,
正因为此,我们通常把这部分内存区域叫做低端内存。


在物理内存大于896M的i386系统中,整个非线性映射区域不会超过128M。
相反如果物理内存小于896M(不知道该算是幸运还是不幸),非线性映射区域反而会稍微大一些。


我理解错了。非线性映射空间的128M应该不属于高端内存,不然就矛盾了。
如果哪位朋友分配给linux的虚拟机有1G以上空间,试一下看有没有高端内存。

论坛徽章:
0
5 [报告]
发表于 2009-08-30 19:37 |只看该作者
Xen 3.2, 给下面这个Guest OS分配了1G内存,VM Workstation没有试过,不过应该是一样的。

[root@diskC ~]# cat /proc/meminfo
MemTotal:      1048772 kB
MemFree:        954456 kB
Buffers:          3276 kB
Cached:          45200 kB
SwapCached:          0 kB
Active:          37356 kB
Inactive:        28480 kB
HighTotal:      309768 kB
HighFree:       246232 kB
LowTotal:       739004 kB
LowFree:        708224 kB

SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:             268 kB
Writeback:           0 kB
AnonPages:       17356 kB
Mapped:           9984 kB
Slab:             8652 kB
PageTables:       1068 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:    524384 kB
Committed_AS:    69420 kB
VmallocTotal:   116728 kB
VmallocUsed:      1028 kB
VmallocChunk:   115544 kB

[ 本帖最后由 almeydifer 于 2009-8-30 19:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP