Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp6535045rwi; Mon, 24 Oct 2022 02:45:05 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5M955mXpRGoL/x5VL25HIo3u+p/w6Bf7bTPTXU0r2PK3JXVBexDDFo/Q+oT7gTPtg/79i1 X-Received: by 2002:a17:906:5dac:b0:78d:fa65:a4a9 with SMTP id n12-20020a1709065dac00b0078dfa65a4a9mr25789276ejv.223.1666604705375; Mon, 24 Oct 2022 02:45:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666604705; cv=none; d=google.com; s=arc-20160816; b=xfpA/P7znKwwN4+/wiYsjzaYE4JyzmW5oRRw49Mv4uykTI69IlInztvu+u7fjQTMf9 F2Y/8UoIhEF3+PHy8UauHRGwJqE3MDDug5yUxSYxcR9+1vqMPNt641H/WpO5eeWwxE+e P7FtOXfR7I/8zw5ObWJY4BFH51qterTnxDZ2YDcZ6I6MhRJbfr3JdmQ+tg8VIA7N9HUH 9vdJfadCxLH8FKyg7MbYEF4m7hcealtPHBWtSlDvb4pZ4AO7YlulWeFa3/5bE3oaGalc 0vYF8j1P+WBCbwvundmYPR+W9LaIj7gOH7DLT3KHcokMBZNU/jfVdwUCifNCXvxHt9qv sP3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=KeC00WeoYZ/ViJPn20UQg+IEpDwRzEZ+DxYoDOeVhEM=; b=YxtBeisr0RoS+GZIQ1aItyh+NNQCQ8prHZqQWBMLmhZ2z1gSs32o6UpGOGeKpIOhDK YRN+1vCUZeAQpngd5uGIKrULZZ1oP+6phxq4e+KHCKaSgDm9TQnL/asrvHD8+Tz9OQ7y rHlDXwiXjVtXdsrgVidjQoRIBbSD08gOqtgf+3EG0RohyQ4YkWVsU3zjFH84kGiGr1J9 jC/QTr6+3wl5XMFHBmvEMMAwrlrDNIBCPrsnLu2MuTN4SMm4DCAUvNw7L5nSP2lfxbpm cbeGJ6YzWg13c5G9ste8ncR/G3wHSI+bju0WNmIJ3UNuhha1vVwkXAmVhdj+gzY8Hl2h lLew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a26-20020a17090682da00b0078d9d67841fsi22059818ejy.400.2022.10.24.02.44.37; Mon, 24 Oct 2022 02:45:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229738AbiJXIem (ORCPT + 99 others); Mon, 24 Oct 2022 04:34:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229721AbiJXIei (ORCPT ); Mon, 24 Oct 2022 04:34:38 -0400 Received: from out30-44.freemail.mail.aliyun.com (out30-44.freemail.mail.aliyun.com [115.124.30.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C5851A229 for ; Mon, 24 Oct 2022 01:34:34 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R571e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046060;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0VSvcrBd_1666600470; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0VSvcrBd_1666600470) by smtp.aliyun-inc.com; Mon, 24 Oct 2022 16:34:31 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: david@redhat.com, ying.huang@intel.com, ziy@nvidia.com, shy828301@gmail.com, apopple@nvidia.com, baolin.wang@linux.alibaba.com, jingshan@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/2] mm: migrate: Fix return value if all subpages of THPs are migrated successfully Date: Mon, 24 Oct 2022 16:34:21 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During THP migration, if THPs are not migrated but they are split and all subpages are migrated successfully, migrate_pages() will still return the number of THP pages that were not migrated. This will confuse the callers of migrate_pages(). For example, the longterm pinning will failed though all pages are migrated successfully. Thus we should return 0 to indicate that all pages are migrated in this case Fixes: b5bade978e9b ("mm: migrate: fix the return value of migrate_pages()") Signed-off-by: Baolin Wang Reviewed-by: Alistair Popple Cc: --- Changes from v2: - Add Fixes tag suggested by Yang Shi and Huang, Ying. - Drop 'nr_thp_split' validation suggested by Alistair. - Add reviewed tag from Alistair. - Update the commit message suggested by Andrew. Changes from v1: - Fix the return value of migrate_pages() instead of fixing the callers' validation. --- mm/migrate.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/migrate.c b/mm/migrate.c index 8e5eb6e..2eb16f8 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1582,6 +1582,13 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, */ list_splice(&ret_pages, from); + /* + * Return 0 in case all subpages of fail-to-migrate THPs are + * migrated successfully. + */ + if (list_empty(from)) + rc = 0; + count_vm_events(PGMIGRATE_SUCCESS, nr_succeeded); count_vm_events(PGMIGRATE_FAIL, nr_failed_pages); count_vm_events(THP_MIGRATION_SUCCESS, nr_thp_succeeded); -- 1.8.3.1