mm/ARM: prepare for removing num_physpages and simplify mem_init()
Prepare for removing num_physpages and simplify mem_init(). Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will.deacon@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
de35e1b828
commit
2450c97323
@@ -583,9 +583,6 @@ static void __init free_highpages(void)
|
|||||||
*/
|
*/
|
||||||
void __init mem_init(void)
|
void __init mem_init(void)
|
||||||
{
|
{
|
||||||
unsigned long reserved_pages, free_pages;
|
|
||||||
struct memblock_region *reg;
|
|
||||||
int i;
|
|
||||||
#ifdef CONFIG_HAVE_TCM
|
#ifdef CONFIG_HAVE_TCM
|
||||||
/* These pointers are filled in on TCM detection */
|
/* These pointers are filled in on TCM detection */
|
||||||
extern u32 dtcm_end;
|
extern u32 dtcm_end;
|
||||||
@@ -605,47 +602,7 @@ void __init mem_init(void)
|
|||||||
|
|
||||||
free_highpages();
|
free_highpages();
|
||||||
|
|
||||||
reserved_pages = free_pages = 0;
|
mem_init_print_info(NULL);
|
||||||
|
|
||||||
for_each_bank(i, &meminfo) {
|
|
||||||
struct membank *bank = &meminfo.bank[i];
|
|
||||||
unsigned int pfn1, pfn2;
|
|
||||||
struct page *page, *end;
|
|
||||||
|
|
||||||
pfn1 = bank_pfn_start(bank);
|
|
||||||
pfn2 = bank_pfn_end(bank);
|
|
||||||
|
|
||||||
page = pfn_to_page(pfn1);
|
|
||||||
end = pfn_to_page(pfn2 - 1) + 1;
|
|
||||||
|
|
||||||
do {
|
|
||||||
if (PageReserved(page))
|
|
||||||
reserved_pages++;
|
|
||||||
else if (!page_count(page))
|
|
||||||
free_pages++;
|
|
||||||
page++;
|
|
||||||
} while (page < end);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Since our memory may not be contiguous, calculate the
|
|
||||||
* real number of pages we have in this system
|
|
||||||
*/
|
|
||||||
printk(KERN_INFO "Memory:");
|
|
||||||
num_physpages = 0;
|
|
||||||
for_each_memblock(memory, reg) {
|
|
||||||
unsigned long pages = memblock_region_memory_end_pfn(reg) -
|
|
||||||
memblock_region_memory_base_pfn(reg);
|
|
||||||
num_physpages += pages;
|
|
||||||
printk(" %ldMB", pages >> (20 - PAGE_SHIFT));
|
|
||||||
}
|
|
||||||
printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT));
|
|
||||||
|
|
||||||
printk(KERN_NOTICE "Memory: %luk/%luk available, %luk reserved, %luK highmem\n",
|
|
||||||
nr_free_pages() << (PAGE_SHIFT-10),
|
|
||||||
free_pages << (PAGE_SHIFT-10),
|
|
||||||
reserved_pages << (PAGE_SHIFT-10),
|
|
||||||
totalhigh_pages << (PAGE_SHIFT-10));
|
|
||||||
|
|
||||||
#define MLK(b, t) b, t, ((t) - (b)) >> 10
|
#define MLK(b, t) b, t, ((t) - (b)) >> 10
|
||||||
#define MLM(b, t) b, t, ((t) - (b)) >> 20
|
#define MLM(b, t) b, t, ((t) - (b)) >> 20
|
||||||
@@ -711,7 +668,7 @@ void __init mem_init(void)
|
|||||||
BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > PAGE_OFFSET);
|
BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > PAGE_OFFSET);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (PAGE_SIZE >= 16384 && num_physpages <= 128) {
|
if (PAGE_SIZE >= 16384 && get_num_physpages() <= 128) {
|
||||||
extern int sysctl_overcommit_memory;
|
extern int sysctl_overcommit_memory;
|
||||||
/*
|
/*
|
||||||
* On a machine this small we won't get
|
* On a machine this small we won't get
|
||||||
|
Reference in New Issue
Block a user