Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1bb7f31 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[S390] showmem: Only walk spanned pages.



Convert show_mem() so its nearly the same as on x86/powerpc.
Gives us proper locking and we get also rid of the only use of max_mapnr.
Also the number of pages was contained in an int which might not be
sufficient not too far in the future.

Cc: Johannes Weiner <hannes@saeurebad.de>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 1760537b
Loading
Loading
Loading
Loading
+23 −26
Original line number Diff line number Diff line
@@ -44,17 +44,20 @@ char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));

void show_mem(void)
{
	int i, total = 0, reserved = 0;
	int shared = 0, cached = 0;
	unsigned long i, total = 0, reserved = 0;
	unsigned long shared = 0, cached = 0;
	unsigned long flags;
	struct page *page;
	pg_data_t *pgdat;

	printk("Mem-info:\n");
	show_free_areas();
	i = max_mapnr;
	while (i-- > 0) {
		if (!pfn_valid(i))
	for_each_online_pgdat(pgdat) {
		pgdat_resize_lock(pgdat, &flags);
		for (i = 0; i < pgdat->node_spanned_pages; i++) {
			if (!pfn_valid(pgdat->node_start_pfn + i))
				continue;
		page = pfn_to_page(i);
			page = pfn_to_page(pgdat->node_start_pfn + i);
			total++;
			if (PageReserved(page))
				reserved++;
@@ -63,18 +66,12 @@ void show_mem(void)
			else if (page_count(page))
				shared += page_count(page) - 1;
		}
	printk("%d pages of RAM\n", total);
	printk("%d reserved pages\n", reserved);
	printk("%d pages shared\n", shared);
	printk("%d pages swap cached\n", cached);

	printk("%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
	printk("%lu pages writeback\n", global_page_state(NR_WRITEBACK));
	printk("%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
	printk("%lu pages slab\n",
	       global_page_state(NR_SLAB_RECLAIMABLE) +
	       global_page_state(NR_SLAB_UNRECLAIMABLE));
	printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE));
		pgdat_resize_unlock(pgdat, &flags);
	}
	printk("%ld pages of RAM\n", total);
	printk("%ld reserved pages\n", reserved);
	printk("%ld pages shared\n", shared);
	printk("%ld pages swap cached\n", cached);
}

/*