arch, mm: filter disallowed nodes from arch specific show_mem functions
Architectures that implement their own show_mem() function did not pass the filter argument to show_free_areas() to appropriately avoid emitting the state of nodes that are disallowed in the current context. This patch now passes the filter argument to show_free_areas() so those nodes are now avoided. This patch also removes the show_free_areas() wrapper around __show_free_areas() and converts existing callers to pass an empty filter. ia64 emits additional information for each node, so skip_free_areas_zone() must be made global to filter disallowed nodes and it is converted to use a nid argument rather than a zone for this use case. Signed-off-by: David Rientjes <rientjes@google.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Helge Deller <deller@gmx.de> Cc: James Bottomley <jejb@parisc-linux.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> 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
851cc856d7
commit
7bf02ea22c
@@ -44,13 +44,16 @@ void show_mem(unsigned int filter)
|
||||
pg_data_t *pgdat;
|
||||
|
||||
printk(KERN_INFO "Mem-info:\n");
|
||||
show_free_areas();
|
||||
show_free_areas(filter);
|
||||
printk(KERN_INFO "Node memory in pages:\n");
|
||||
for_each_online_pgdat(pgdat) {
|
||||
unsigned long present;
|
||||
unsigned long flags;
|
||||
int shared = 0, cached = 0, reserved = 0;
|
||||
int nid = pgdat->node_id;
|
||||
|
||||
if (skip_free_areas_node(filter, nid))
|
||||
continue;
|
||||
pgdat_resize_lock(pgdat, &flags);
|
||||
present = pgdat->node_present_pages;
|
||||
for(i = 0; i < pgdat->node_spanned_pages; i++) {
|
||||
@@ -64,8 +67,7 @@ void show_mem(unsigned int filter)
|
||||
if (max_gap < LARGE_GAP)
|
||||
continue;
|
||||
#endif
|
||||
i = vmemmap_find_next_valid_pfn(pgdat->node_id,
|
||||
i) - 1;
|
||||
i = vmemmap_find_next_valid_pfn(nid, i) - 1;
|
||||
continue;
|
||||
}
|
||||
if (PageReserved(page))
|
||||
@@ -81,7 +83,7 @@ void show_mem(unsigned int filter)
|
||||
total_cached += cached;
|
||||
total_shared += shared;
|
||||
printk(KERN_INFO "Node %4d: RAM: %11ld, rsvd: %8d, "
|
||||
"shrd: %10d, swpd: %10d\n", pgdat->node_id,
|
||||
"shrd: %10d, swpd: %10d\n", nid,
|
||||
present, reserved, shared, cached);
|
||||
}
|
||||
printk(KERN_INFO "%ld pages of RAM\n", total_present);
|
||||
|
Reference in New Issue
Block a user