mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 17:11:46 +00:00
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:
parent
851cc856d7
commit
7bf02ea22c
13 changed files with 34 additions and 36 deletions
|
@ -2473,10 +2473,10 @@ void si_meminfo_node(struct sysinfo *val, int nid)
|
|||
#endif
|
||||
|
||||
/*
|
||||
* Determine whether the zone's node should be displayed or not, depending on
|
||||
* whether SHOW_MEM_FILTER_NODES was passed to __show_free_areas().
|
||||
* Determine whether the node should be displayed or not, depending on whether
|
||||
* SHOW_MEM_FILTER_NODES was passed to show_free_areas().
|
||||
*/
|
||||
static bool skip_free_areas_zone(unsigned int flags, const struct zone *zone)
|
||||
bool skip_free_areas_node(unsigned int flags, int nid)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
|
@ -2484,8 +2484,7 @@ static bool skip_free_areas_zone(unsigned int flags, const struct zone *zone)
|
|||
goto out;
|
||||
|
||||
get_mems_allowed();
|
||||
ret = !node_isset(zone->zone_pgdat->node_id,
|
||||
cpuset_current_mems_allowed);
|
||||
ret = !node_isset(nid, cpuset_current_mems_allowed);
|
||||
put_mems_allowed();
|
||||
out:
|
||||
return ret;
|
||||
|
@ -2500,13 +2499,13 @@ out:
|
|||
* Suppresses nodes that are not allowed by current's cpuset if
|
||||
* SHOW_MEM_FILTER_NODES is passed.
|
||||
*/
|
||||
void __show_free_areas(unsigned int filter)
|
||||
void show_free_areas(unsigned int filter)
|
||||
{
|
||||
int cpu;
|
||||
struct zone *zone;
|
||||
|
||||
for_each_populated_zone(zone) {
|
||||
if (skip_free_areas_zone(filter, zone))
|
||||
if (skip_free_areas_node(filter, zone_to_nid(zone)))
|
||||
continue;
|
||||
show_node(zone);
|
||||
printk("%s per-cpu:\n", zone->name);
|
||||
|
@ -2549,7 +2548,7 @@ void __show_free_areas(unsigned int filter)
|
|||
for_each_populated_zone(zone) {
|
||||
int i;
|
||||
|
||||
if (skip_free_areas_zone(filter, zone))
|
||||
if (skip_free_areas_node(filter, zone_to_nid(zone)))
|
||||
continue;
|
||||
show_node(zone);
|
||||
printk("%s"
|
||||
|
@ -2618,7 +2617,7 @@ void __show_free_areas(unsigned int filter)
|
|||
for_each_populated_zone(zone) {
|
||||
unsigned long nr[MAX_ORDER], flags, order, total = 0;
|
||||
|
||||
if (skip_free_areas_zone(filter, zone))
|
||||
if (skip_free_areas_node(filter, zone_to_nid(zone)))
|
||||
continue;
|
||||
show_node(zone);
|
||||
printk("%s: ", zone->name);
|
||||
|
@ -2639,11 +2638,6 @@ void __show_free_areas(unsigned int filter)
|
|||
show_swap_cache_info();
|
||||
}
|
||||
|
||||
void show_free_areas(void)
|
||||
{
|
||||
__show_free_areas(0);
|
||||
}
|
||||
|
||||
static void zoneref_set_zone(struct zone *zone, struct zoneref *zoneref)
|
||||
{
|
||||
zoneref->zone = zone;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue