Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362235
  • 博文数量: 77
  • 博客积分: 1447
  • 博客等级: 中尉
  • 技术积分: 885
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-21 21:48
文章分类

全部博文(77)

文章存档

2021年(2)

2020年(2)

2016年(3)

2015年(1)

2014年(4)

2013年(1)

2012年(23)

2011年(15)

2010年(26)

分类:

2010-04-23 14:51:17

在经过分配user/kernel按1G/3G方式使用4G的逻辑空间后,在内核下做测试申请2G的内核会失败。经查是由于NUMAQ引起的,由于PHYSICAL_START被设置为从0x100000开始,而我的内存分布如下表所示:
BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved)    
BIOS-e820: 00000000000e5000 - 0000000000100000 (reserved)          
BIOS-e820: 0000000000100000 - 000000007f780000 (usable)                         
BIOS-e820: 000000007f78e000 - 000000007f790000 type 9            
BIOS-e820: 000000007f790000 - 000000007f79e000 (ACPI data)         
BIOS-e820: 000000007f79e000 - 000000007f7d0000 (ACPI NVS)          
BIOS-e820: 000000007f7d0000 - 000000007f7e0000 (reserved)          
BIOS-e820: 000000007f7ed000 - 0000000080000000 (reserved)          
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)          
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)          
BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)          
BIOS-e820: 0000000100000000 - 0000000380000000 (usable) 

请注意这一句BIOS-e820: 0000000000100000 - 000000007f780000 (usable) 从0x100000开始的连续内存仅有2038M(2G),而做内存映射花300M左右(通过free查看),所以我无法在内核中分配2G的内存空间。

若要真正的使用3G的内核内存,则需要将PHYSICAL_START设置为0x100000000(4G)

修改方法可以在make menuconfig 中的Physical address where the kernel is loaded将0x100000改为0x100000000,我以为就可以分配3G,但是从测试的结果来看这是相当然的方法,我还没有成功。修改这个参数只是将内核加载到了0x100000000处。

阅读(2194) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

安何2010-04-27 10:08:51