On Mon, Feb 02, 2015 at 04:15:46PM +0900, Joonsoo Kim wrote: > freepage with MIGRATE_CMA can be used only for MIGRATE_MOVABLE and > they should not be expanded to other migratetype buddy list > to protect them from unmovable/reclaimable allocation. Implementing > these requirements in __rmqueue_fallback(), that is, finding largest > possible block of freepage has bad effect that high order freepage > with MIGRATE_CMA are broken continually although there are suitable > order CMA freepage. Reason is that they are not be expanded to other > migratetype buddy list and next __rmqueue_fallback() invocation try to > finds another largest block of freepage and break it again. So, > MIGRATE_CMA fallback should be handled separately. This patch > introduces __rmqueue_cma_fallback(), that just wrapper of > __rmqueue_smallest() and call it before __rmqueue_fallback() > if migratetype == MIGRATE_MOVABLE. > > This results in unintended behaviour change that MIGRATE_CMA freepage > is always used first rather than other migratetype as movable > allocation's fallback. But, as already mentioned above, > MIGRATE_CMA can be used only for MIGRATE_MOVABLE, so it is better > to use MIGRATE_CMA freepage first as much as possible. Otherwise, > we needlessly take up precious freepages with other migratetype and > increase chance of fragmentation. > > Signed-off-by: Joonsoo Kim <iamjoonsoo....@lge.com> > ---
Hello, Vlastimil. This RFC is targeted to you, but, I mistakenly omit your e-mail on CC list. Sorry about that. :/ How about this v3 which try to clean-up __rmqueue_fallback() much more? Thanks. -- 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/