Commit 39bbcb8f authored by Christoph Lameter's avatar Christoph Lameter Committed by Linus Torvalds

[PATCH] mm: do not check unpopulated zones for draining and counter updates

If a zone is unpopulated then we do not need to check for pages that are to
be drained and also not for vm counters that may need to be updated.
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 006d22d9
...@@ -633,7 +633,7 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order, ...@@ -633,7 +633,7 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
/* /*
* Called from the slab reaper to drain pagesets on a particular node that * Called from the slab reaper to drain pagesets on a particular node that
* belong to the currently executing processor. * belongs to the currently executing processor.
* Note that this function must be called with the thread pinned to * Note that this function must be called with the thread pinned to
* a single processor. * a single processor.
*/ */
...@@ -647,6 +647,9 @@ void drain_node_pages(int nodeid) ...@@ -647,6 +647,9 @@ void drain_node_pages(int nodeid)
struct zone *zone = NODE_DATA(nodeid)->node_zones + z; struct zone *zone = NODE_DATA(nodeid)->node_zones + z;
struct per_cpu_pageset *pset; struct per_cpu_pageset *pset;
if (!populated_zone(zone))
continue;
pset = zone_pcp(zone, smp_processor_id()); pset = zone_pcp(zone, smp_processor_id());
for (i = 0; i < ARRAY_SIZE(pset->pcp); i++) { for (i = 0; i < ARRAY_SIZE(pset->pcp); i++) {
struct per_cpu_pages *pcp; struct per_cpu_pages *pcp;
......
...@@ -321,6 +321,9 @@ void refresh_cpu_vm_stats(int cpu) ...@@ -321,6 +321,9 @@ void refresh_cpu_vm_stats(int cpu)
for_each_zone(zone) { for_each_zone(zone) {
struct per_cpu_pageset *pcp; struct per_cpu_pageset *pcp;
if (!populated_zone(zone))
continue;
pcp = zone_pcp(zone, cpu); pcp = zone_pcp(zone, cpu);
for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment