diff options
author | Christoph Lameter <clameter@sgi.com> | 2006-03-09 20:33:47 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-09 22:47:37 -0500 |
commit | a6bf527091b1dd40f1b6a496812ce7520621c282 (patch) | |
tree | bed2341cbb2e4bf71d29f2e8b6ab7affa72aabd5 /mm | |
parent | 04b857f74cec5efc7730e9db47e291310f4708a4 (diff) |
[PATCH] vmscan: no zone_reclaim if PF_MALLOC is set
If the process has already set PF_MALLOC and is already using
current->reclaim_state then do not try to reclaim memory from the zone.
This is set by kswapd and/or synchrononous global reclaim which will not
take it lightly if we zap the reclaim_state.
Signed-off-by: Christoph Lameter <clameter@sig.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/vmscan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index b0af7593d01e..7ccf763bb30b 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1883,7 +1883,8 @@ int zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order) | |||
1883 | 1883 | ||
1884 | if (!(gfp_mask & __GFP_WAIT) || | 1884 | if (!(gfp_mask & __GFP_WAIT) || |
1885 | zone->all_unreclaimable || | 1885 | zone->all_unreclaimable || |
1886 | atomic_read(&zone->reclaim_in_progress) > 0) | 1886 | atomic_read(&zone->reclaim_in_progress) > 0 || |
1887 | (p->flags & PF_MEMALLOC)) | ||
1887 | return 0; | 1888 | return 0; |
1888 | 1889 | ||
1889 | node_id = zone->zone_pgdat->node_id; | 1890 | node_id = zone->zone_pgdat->node_id; |