On Thu, 9 Sep 2010, Mel Gorman wrote: > @@ -1876,10 +1890,13 @@ retry: > migratetype); > > /* > - * If an allocation failed after direct reclaim, it could be because > - * pages are pinned on the per-cpu lists. Drain them and try again > + * If a high-order allocation failed after direct reclaim, it could > + * be because pages are pinned on the per-cpu lists. However, only > + * do it for PAGE_ALLOC_COSTLY_ORDER as the cost of the IPI needed > + * to drain the pages is itself high. Assume that lower orders > + * will naturally free without draining. > */ > - if (!page && !drained) { > + if (!page && !drained && order > PAGE_ALLOC_COSTLY_ORDER) { > drain_all_pages(); > drained = true; > goto retry; > This will have the effect of never sending IPIs for slab allocations since they do not do allocations for orders > PAGE_ALLOC_COSTLY_ORDER. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>