The patch titled Subject: zsmalloc: consider ZS_ALMOST_FULL as migrate source has been removed from the -mm tree. Its filename was zsmalloc-consider-zs_almost_full-as-migrate-source.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ From: Minchan Kim <minchan.kim@xxxxxxx> Subject: zsmalloc: consider ZS_ALMOST_FULL as migrate source There is no reason to prevent select ZS_ALMOST_FULL as migration source if we cannot find source from ZS_ALMOST_EMPTY. With this patch, zs_can_compact will return more exact result. Signed-off-by: Minchan Kim <minchan.kim@xxxxxxx> Acked-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/zsmalloc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff -puN mm/zsmalloc.c~zsmalloc-consider-zs_almost_full-as-migrate-source mm/zsmalloc.c --- a/mm/zsmalloc.c~zsmalloc-consider-zs_almost_full-as-migrate-source +++ a/mm/zsmalloc.c @@ -1691,11 +1691,17 @@ static enum fullness_group putback_zspag static struct page *isolate_source_page(struct size_class *class) { - struct page *page; + int i; + struct page *page = NULL; - page = class->fullness_list[ZS_ALMOST_EMPTY]; - if (page) - remove_zspage(page, class, ZS_ALMOST_EMPTY); + for (i = ZS_ALMOST_EMPTY; i >= ZS_ALMOST_FULL; i--) { + page = class->fullness_list[i]; + if (!page) + continue; + + remove_zspage(page, class, i); + break; + } return page; } @@ -1711,9 +1717,6 @@ static unsigned long zs_can_compact(stru { unsigned long obj_wasted; - if (!zs_stat_get(class, CLASS_ALMOST_EMPTY)) - return 0; - obj_wasted = zs_stat_get(class, OBJ_ALLOCATED) - zs_stat_get(class, OBJ_USED); _ Patches currently in -mm which might be from minchan.kim@xxxxxxx are -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html