[PATCH] allow PF_MEMALLOC tasks to directly reclaim pages

Marcelo Tosatti (marcelo@conectiva.com.br)
Fri, 27 Apr 2001 06:50:01 -0300 (BRT)


Linus,

Currently __alloc_pages() does not allow PF_MEMALLOC tasks to free clean
inactive pages.

This is senseless --- if the allocation has __GFP_WAIT set, its ok to grab
the pagemap_lru_lock/pagecache_lock/etc.

I checked all possible codepaths after reclaim_page() and they are ok.

The following patch fixes that.

--- linux/mm/page_alloc.c.orig Fri Apr 27 05:59:35 2001
+++ linux/mm/page_alloc.c Fri Apr 27 05:59:48 2001
@@ -295,8 +295,7 @@
* Can we take pages directly from the inactive_clean
* list?
*/
- if (order == 0 && (gfp_mask & __GFP_WAIT) &&
- !(current->flags & PF_MEMALLOC))
+ if (order == 0 && (gfp_mask & __GFP_WAIT))
direct_reclaim = 1;

/*

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/