- 论坛徽章:
- 0
|
在编译内核的时候,根据资料上说,0~1G的时候可以不用打开高端内存的宏,1~4G的时候就可以打开,而我的内存是1G的,按道理说高端内存的宏可开可不开。打开的时候,用cat /proc/meminfo可以看到内存的总大小为1G:- # CONFIG_NOHIGHMEM is not set
- CONFIG_HIGHMEM4G=y
- # CONFIG_HIGHMEM64G is not set
- CONFIG_HIGHMEM=y
复制代码- # cat /proc/meminfo
- MemTotal: 1003916 kB
复制代码 相关log:
- <6>[ 0.000000] last_pfn = 0x3ee00 max_arch_pfn = 0x100000
- <6>[ 0.000000] setup_arch: max_pfn:0x3ee00, 1006Mb
- <6>[ 0.000000] highmem_pfn_init: ------1006Mb, MAXMEM:887Mb
- <6>[ 0.000000] highmem_pfn_init: ------257536, highmem_pages:-1, MAXMEM:227326
- <7>[ 0.000000] initial memory mapped : 0 - 02400000
- <6>[ 0.000000] init_memory_mapping: 0000000000000000-00000000377fe000
- <7>[ 0.000000] 0000000000 - 0000400000 page 4k
- <7>[ 0.000000] 0000400000 - 0037400000 page 2M
- <7>[ 0.000000] 0037400000 - 00377fe000 page 4k
- <7>[ 0.000000] kernel direct mapping tables up to 377fe000 @ 7000-c000
- <6>[ 0.000000] RAMDISK: 07dfa000 - 08000000
- <5>[ 0.000000] 118MB HIGHMEM available.
- <5>[ 0.000000] 887MB LOWMEM available.
- <6>[ 0.000000] mapped low ram: 0 - 377fe000
- <6>[ 0.000000] low ram: 0 - 377fe000
- <4>[ 0.000000] Zone PFN ranges:
- <4>[ 0.000000] DMA 0x00000001 -> 0x00001000
- <4>[ 0.000000] Normal 0x00001000 -> 0x000377fe
- <4>[ 0.000000] HighMem 0x000377fe -> 0x0003ee00
- <4>[ 0.000000] Movable zone start PFN for each node
- <4>[ 0.000000] early_node_map[3] active PFN ranges
- <4>[ 0.000000] 0: 0x00000001 -> 0x00000098
- <4>[ 0.000000] 0: 0x00000100 -> 0x00000e00
- <4>[ 0.000000] 0: 0x00001000 -> 0x0003ee00
- <7>[ 0.000000] On node 0 totalpages: 256919
- <7>[ 0.000000] free_area_init_node: node 0, pgdat c1af1800, node_mem_map c20c9020
- <7>[ 0.000000] DMA zone: 32 pages used for memmap
- <7>[ 0.000000] DMA zone: 0 pages reserved
- <7>[ 0.000000] DMA zone: 3447 pages, LIFO batch:0
- <7>[ 0.000000] Normal zone: 1744 pages used for memmap
- <7>[ 0.000000] Normal zone: 221486 pages, LIFO batch:31
- <7>[ 0.000000] HighMem zone: 237 pages used for memmap
- <7>[ 0.000000] HighMem zone: 29973 pages, LIFO batch:7
- ......
- <6>[ 0.000000] Initializing HighMem for node 0 (000377fe:0003ee00)
- <6>[ 0.000000] Memory: 1001440k/1030144k available (6484k kernel code, 26236k reserved, 2852k data, 404k init, 120840k highmem)
- <6>[ 0.000000] totalram_pages:1001440k Mem:1001440k
- <6>[ 0.000000] virtual kernel memory layout:
- <6>[ 0.000000] fixmap : 0xfff15000 - 0xfffff000 ( 936 kB)
- <6>[ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
- <6>[ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB)
- <6>[ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB)
- <6>[ 0.000000] .init : 0xc1b1f000 - 0xc1b84000 ( 404 kB)
- <6>[ 0.000000] .data : 0xc185527d - 0xc1b1e484 (2852 kB)
- <6>[ 0.000000] .text : 0xc1200000 - 0xc185527d (6484 kB)
- ......
复制代码 当不打开高端内存的宏的时候:
- CONFIG_NOHIGHMEM=y
- # CONFIG_HIGHMEM4G is not set
- # CONFIG_HIGHMEM64G is not set
- # CONFIG_HIGHMEM is not set
复制代码- # cat /proc/meminfo
- MemTotal: 892364 kB
复制代码 相关log:
- <6>[ 0.000000] last_pfn = 0x3ee00 max_arch_pfn = 0x100000
- <6>[ 0.000000] setup_arch: max_pfn:0x3ee00, 1006Mb
- <6>[ 0.000000] highmem_pfn_init: ------1006Mb, MAXMEM:895Mb
- <6>[ 0.000000] highmem_pfn_init: ------257536, highmem_pages:-1, MAXMEM:229139
- <4>[ 0.000000] Warning only 895MB will be used.
- <4>[ 0.000000] Use a HIGHMEM enabled kernel.
- <7>[ 0.000000] initial memory mapped : 0 - 02400000
- <6>[ 0.000000] init_memory_mapping: 0000000000000000-0000000037f13000
- <7>[ 0.000000] 0000000000 - 0000400000 page 4k
- <7>[ 0.000000] 0000400000 - 0037c00000 page 2M
- <7>[ 0.000000] 0037c00000 - 0037f13000 page 4k
- <7>[ 0.000000] kernel direct mapping tables up to 37f13000 @ 7000-c000
- <6>[ 0.000000] RAMDISK: 07dfa000 - 08000000
- <5>[ 0.000000] 895MB LOWMEM available.
- <6>[ 0.000000] mapped low ram: 0 - 37f13000
- <6>[ 0.000000] low ram: 0 - 37f13000
- <4>[ 0.000000] Zone PFN ranges:
- <4>[ 0.000000] DMA 0x00000001 -> 0x00001000
- <4>[ 0.000000] Normal 0x00001000 -> 0x00037f13
- <4>[ 0.000000] Movable zone start PFN for each node
- <4>[ 0.000000] early_node_map[3] active PFN ranges
- <4>[ 0.000000] 0: 0x00000001 -> 0x00000098
- <4>[ 0.000000] 0: 0x00000100 -> 0x00000e00
- <4>[ 0.000000] 0: 0x00001000 -> 0x00037f13
- <7>[ 0.000000] On node 0 totalpages: 228522
- <7>[ 0.000000] free_area_init_node: node 0, pgdat c1af1780, node_mem_map c20c1020
- <7>[ 0.000000] DMA zone: 32 pages used for memmap
- <7>[ 0.000000] DMA zone: 0 pages reserved
- <7>[ 0.000000] DMA zone: 3447 pages, LIFO batch:0
- <7>[ 0.000000] Normal zone: 1759 pages used for memmap
- <7>[ 0.000000] Normal zone: 223284 pages, LIFO batch:31
- ......
- <6>[ 0.000000] Memory: 888788k/916556k available (6483k kernel code, 25300k reserved, 2852k data, 400k init, 0k highmem)
- <6>[ 0.000000] totalram_pages:888788k Mem:888788k
- <6>[ 0.000000] virtual kernel memory layout:
- <6>[ 0.000000] fixmap : 0xfff15000 - 0xfffff000 ( 936 kB)
- <6>[ 0.000000] vmalloc : 0xf8713000 - 0xfff13000 ( 120 MB)
- <6>[ 0.000000] lowmem : 0xc0000000 - 0xf7f13000 ( 895 MB)
- <6>[ 0.000000] .init : 0xc1b1f000 - 0xc1b83000 ( 400 kB)
- <6>[ 0.000000] .data : 0xc1854e8d - 0xc1b1e084 (2852 kB)
- <6>[ 0.000000] .text : 0xc1200000 - 0xc1854e8d (6483 kB)
- ......
复制代码 当不打开高端内存的时候,总内存只有895M,可我的内存是1G的,这是不是以为着我还有128M的内存没有使用呢? |
|