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/