diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-03-20 16:58:09 +0000 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-03-20 16:58:09 +0000 | 
| commit | fd4a0b92db6a57cba8d03efbe1cebf91f9124ce0 (patch) | |
| tree | 5886a08bfa1132058b06074f4666a36dc5ddd2a1 /mm/page_alloc.c | |
| parent | 88274815f7477dc7550439413ab87c5ce4c5a623 (diff) | |
| parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 17 | 
1 files changed, 8 insertions, 9 deletions
| diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 791690d7d3f..234bd4895d1 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -590,21 +590,20 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,  }  #ifdef CONFIG_NUMA -/* Called from the slab reaper to drain remote pagesets */ -void drain_remote_pages(void) +/* + * Called from the slab reaper to drain pagesets on a particular node that + * belong to the currently executing processor. + */ +void drain_node_pages(int nodeid)  { -	struct zone *zone; -	int i; +	int i, z;  	unsigned long flags;  	local_irq_save(flags); -	for_each_zone(zone) { +	for (z = 0; z < MAX_NR_ZONES; z++) { +		struct zone *zone = NODE_DATA(nodeid)->node_zones + z;  		struct per_cpu_pageset *pset; -		/* Do not drain local pagesets */ -		if (zone->zone_pgdat->node_id == numa_node_id()) -			continue; -  		pset = zone_pcp(zone, smp_processor_id());  		for (i = 0; i < ARRAY_SIZE(pset->pcp); i++) {  			struct per_cpu_pages *pcp; | 
