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 | |
| 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>
| -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; |
