Like [1], zs_page_isolate meet the same problem if zspage is not inuse. After [2], zs_page_migrate can support empty zspage now. Make this patch to let zs_page_isolate skip unnecessary loops but not return false if zspage is not inuse. [1] zsmalloc-zs_page_migrate-skip-unnecessary-loops-but-not-return-ebusy-if-zspage-is-not-inuse-fix.patch [2] zsmalloc-zs_page_migrate-schedule-free_work-if-zspage-is-ZS_EMPTY.patch Signed-off-by: Hui Zhu <zhuhui@xxxxxxxxxx> --- mm/zsmalloc.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index fb99953..8560c93 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -1927,11 +1927,6 @@ bool zs_page_isolate(struct page *page, isolate_mode_t mode) class = pool->size_class[class_idx]; spin_lock(&class->lock); - if (get_zspage_inuse(zspage) == 0) { - spin_unlock(&class->lock); - return false; - } - /* zspage is isolated for object migration */ if (list_empty(&zspage->list) && !is_zspage_isolated(zspage)) { spin_unlock(&class->lock); -- 1.9.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>