On Mon, 9 Jul 2012, JoonSoo Kim wrote: > I think __alloc_pages_direct_compact() can't be inlined by gcc, > because it is so big and is invoked two times in __alloc_pages_nodemask(). >
We could fix that by doing diff --git a/mm/page_alloc.c b/mm/page_alloc.c --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2057,7 +2057,7 @@ out: #ifdef CONFIG_COMPACTION /* Try memory compaction for high-order allocations before reclaim */ -static struct page * +static __always_inline struct page * __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order, struct zonelist *zonelist, enum zone_type high_zoneidx, nodemask_t *nodemask, int alloc_flags, struct zone *preferred_zone, but I'm not convinced that it's helpful for performance in the slowpath and there's no guarantee that it's called more often for order-0 allocations since it is called as a fallback when should_alloc_retry() fails. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/