@@ -66,6 +66,55 @@ void __init bootmem_init(void)
66
66
memblock_dump_all ();
67
67
}
68
68
69
+ static void __init print_vm_layout (void )
70
+ {
71
+ pr_info ("virtual kernel memory layout:\n"
72
+ #ifdef CONFIG_KASAN
73
+ " kasan : 0x%08lx - 0x%08lx (%5lu MB)\n"
74
+ #endif
75
+ #ifdef CONFIG_MMU
76
+ " vmalloc : 0x%08lx - 0x%08lx (%5lu MB)\n"
77
+ #endif
78
+ #ifdef CONFIG_HIGHMEM
79
+ " pkmap : 0x%08lx - 0x%08lx (%5lu kB)\n"
80
+ " fixmap : 0x%08lx - 0x%08lx (%5lu kB)\n"
81
+ #endif
82
+ " lowmem : 0x%08lx - 0x%08lx (%5lu MB)\n"
83
+ " .text : 0x%08lx - 0x%08lx (%5lu kB)\n"
84
+ " .rodata : 0x%08lx - 0x%08lx (%5lu kB)\n"
85
+ " .data : 0x%08lx - 0x%08lx (%5lu kB)\n"
86
+ " .init : 0x%08lx - 0x%08lx (%5lu kB)\n"
87
+ " .bss : 0x%08lx - 0x%08lx (%5lu kB)\n" ,
88
+ #ifdef CONFIG_KASAN
89
+ KASAN_SHADOW_START , KASAN_SHADOW_START + KASAN_SHADOW_SIZE ,
90
+ KASAN_SHADOW_SIZE >> 20 ,
91
+ #endif
92
+ #ifdef CONFIG_MMU
93
+ VMALLOC_START , VMALLOC_END ,
94
+ (VMALLOC_END - VMALLOC_START ) >> 20 ,
95
+ #ifdef CONFIG_HIGHMEM
96
+ PKMAP_BASE , PKMAP_BASE + LAST_PKMAP * PAGE_SIZE ,
97
+ (LAST_PKMAP * PAGE_SIZE ) >> 10 ,
98
+ FIXADDR_START , FIXADDR_END ,
99
+ (FIXADDR_END - FIXADDR_START ) >> 10 ,
100
+ #endif
101
+ PAGE_OFFSET , PAGE_OFFSET +
102
+ (max_low_pfn - min_low_pfn ) * PAGE_SIZE ,
103
+ #else
104
+ min_low_pfn * PAGE_SIZE , max_low_pfn * PAGE_SIZE ,
105
+ #endif
106
+ ((max_low_pfn - min_low_pfn ) * PAGE_SIZE ) >> 20 ,
107
+ (unsigned long )_text , (unsigned long )_etext ,
108
+ (unsigned long )(_etext - _text ) >> 10 ,
109
+ (unsigned long )__start_rodata , (unsigned long )__end_rodata ,
110
+ (unsigned long )(__end_rodata - __start_rodata ) >> 10 ,
111
+ (unsigned long )_sdata , (unsigned long )_edata ,
112
+ (unsigned long )(_edata - _sdata ) >> 10 ,
113
+ (unsigned long )__init_begin , (unsigned long )__init_end ,
114
+ (unsigned long )(__init_end - __init_begin ) >> 10 ,
115
+ (unsigned long )__bss_start , (unsigned long )__bss_stop ,
116
+ (unsigned long )(__bss_stop - __bss_start ) >> 10 );
117
+ }
69
118
70
119
void __init zones_init (void )
71
120
{
@@ -77,6 +126,7 @@ void __init zones_init(void)
77
126
#endif
78
127
};
79
128
free_area_init (max_zone_pfn );
129
+ print_vm_layout ();
80
130
}
81
131
82
132
static void __init free_highpages (void )
@@ -118,53 +168,6 @@ void __init mem_init(void)
118
168
high_memory = (void * )__va (max_low_pfn << PAGE_SHIFT );
119
169
120
170
memblock_free_all ();
121
-
122
- pr_info ("virtual kernel memory layout:\n"
123
- #ifdef CONFIG_KASAN
124
- " kasan : 0x%08lx - 0x%08lx (%5lu MB)\n"
125
- #endif
126
- #ifdef CONFIG_MMU
127
- " vmalloc : 0x%08lx - 0x%08lx (%5lu MB)\n"
128
- #endif
129
- #ifdef CONFIG_HIGHMEM
130
- " pkmap : 0x%08lx - 0x%08lx (%5lu kB)\n"
131
- " fixmap : 0x%08lx - 0x%08lx (%5lu kB)\n"
132
- #endif
133
- " lowmem : 0x%08lx - 0x%08lx (%5lu MB)\n"
134
- " .text : 0x%08lx - 0x%08lx (%5lu kB)\n"
135
- " .rodata : 0x%08lx - 0x%08lx (%5lu kB)\n"
136
- " .data : 0x%08lx - 0x%08lx (%5lu kB)\n"
137
- " .init : 0x%08lx - 0x%08lx (%5lu kB)\n"
138
- " .bss : 0x%08lx - 0x%08lx (%5lu kB)\n" ,
139
- #ifdef CONFIG_KASAN
140
- KASAN_SHADOW_START , KASAN_SHADOW_START + KASAN_SHADOW_SIZE ,
141
- KASAN_SHADOW_SIZE >> 20 ,
142
- #endif
143
- #ifdef CONFIG_MMU
144
- VMALLOC_START , VMALLOC_END ,
145
- (VMALLOC_END - VMALLOC_START ) >> 20 ,
146
- #ifdef CONFIG_HIGHMEM
147
- PKMAP_BASE , PKMAP_BASE + LAST_PKMAP * PAGE_SIZE ,
148
- (LAST_PKMAP * PAGE_SIZE ) >> 10 ,
149
- FIXADDR_START , FIXADDR_END ,
150
- (FIXADDR_END - FIXADDR_START ) >> 10 ,
151
- #endif
152
- PAGE_OFFSET , PAGE_OFFSET +
153
- (max_low_pfn - min_low_pfn ) * PAGE_SIZE ,
154
- #else
155
- min_low_pfn * PAGE_SIZE , max_low_pfn * PAGE_SIZE ,
156
- #endif
157
- ((max_low_pfn - min_low_pfn ) * PAGE_SIZE ) >> 20 ,
158
- (unsigned long )_text , (unsigned long )_etext ,
159
- (unsigned long )(_etext - _text ) >> 10 ,
160
- (unsigned long )__start_rodata , (unsigned long )__end_rodata ,
161
- (unsigned long )(__end_rodata - __start_rodata ) >> 10 ,
162
- (unsigned long )_sdata , (unsigned long )_edata ,
163
- (unsigned long )(_edata - _sdata ) >> 10 ,
164
- (unsigned long )__init_begin , (unsigned long )__init_end ,
165
- (unsigned long )(__init_end - __init_begin ) >> 10 ,
166
- (unsigned long )__bss_start , (unsigned long )__bss_stop ,
167
- (unsigned long )(__bss_stop - __bss_start ) >> 10 );
168
171
}
169
172
170
173
static void __init parse_memmap_one (char * p )
0 commit comments