From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7664FC43381 for ; Tue, 12 Jan 2021 09:44:16 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0297322DD3 for ; Tue, 12 Jan 2021 09:44:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0297322DD3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8664F8D0084; Tue, 12 Jan 2021 04:44:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 816648D0051; Tue, 12 Jan 2021 04:44:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B80A8D0084; Tue, 12 Jan 2021 04:44:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0173.hostedemail.com [216.40.44.173]) by kanga.kvack.org (Postfix) with ESMTP id 5365E8D0051 for ; Tue, 12 Jan 2021 04:44:15 -0500 (EST) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 209FF180AD80F for ; Tue, 12 Jan 2021 09:44:15 +0000 (UTC) X-FDA: 77696637270.11.worm25_2b1356327514 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin11.hostedemail.com (Postfix) with ESMTP id 04355180F8B86 for ; Tue, 12 Jan 2021 09:44:14 +0000 (UTC) X-HE-Tag: worm25_2b1356327514 X-Filterd-Recvd-Size: 4904 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by imf23.hostedemail.com (Postfix) with ESMTP for ; Tue, 12 Jan 2021 09:44:13 +0000 (UTC) Received: by mail-pg1-f180.google.com with SMTP id p18so1065503pgm.11 for ; Tue, 12 Jan 2021 01:44:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qhKAvdyLV9ozaBHs7ibd8aRJfyvsfFlYNbqMhqyg060=; b=cbC/HNTUF0dIEuvA/YKvArU6Ak+cJb0cXhRxx830ejv1rNkYMLAQX5DZq+XLl/P2rF I+X1mN8YSVuG8hWZ0N3G5ThmqDczJu5S4W4Hvdxrlb/XeJuYtrzFW7qWDiBoS2vZ1udl xKXI8aNFa8rzyCEO/TYnu7uNHkPNxGQQ8GNVkVWW2gHgZsKWc4HT7V3oZS/c9Q3ik6uF xBKdj4pxtQMEg/nfFDy4YPXZqVuNHpSAwzJwJbty7HUtsTnFui5ne2IQgvMZo7USbpbb SGpu582Zqv30wOZdOcCzKGMWK1yQEKh1uY+Z+WB7APrFtD8kPshhKfCBEDeAk+OPQA5U 6nBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qhKAvdyLV9ozaBHs7ibd8aRJfyvsfFlYNbqMhqyg060=; b=eNL0lqhs8i0z2wcBdO0EJCOArLKjsbevapbvPTF+75/FT8mrEnAxYU5T4qdkXEhNDA M2vCKBARnK1+i5UYfPq2Xqq5wCpDkbdMKKbpCq5MdOJAZNOjh1yBmSQ7BTl+qleNLBgT QZKAh8Pp2w4B1pOfX9C+RMH0Z29br+8H3tD47t19W1nksGy1ReNHLurnI564eVh3DpvD wpSIXKlf8vUu4hLoGVfJMoYUwt6IDj9nAZk7+tkMRs+7oiJSBCsuOcjTBovH6SSd0m4V 8dvUMpov3UdKcvIkqj2N2FM3e/ohGsVlS7LdJWtJ9/afyiAC2slIx4zL+kq4CDliHyAd Rddg== X-Gm-Message-State: AOAM530hHYhHHjv9iPxtlB0/85zudokS3ZDZ/3vGynpgszJ7M2Eh2ipn E9vR2n37+dt+o9ySnxGDnoY8h9zyY4C4xHfYMqJyOQ== X-Google-Smtp-Source: ABdhPJxvDFvvlZabl5kzZ+R1L5yEdMbs49iCNkUUDD0duSQUClowazshDTSh0023giqQ2cNQDuWnlyLk023Il7JCBMs= X-Received: by 2002:a63:480f:: with SMTP id v15mr3875523pga.341.1610444652212; Tue, 12 Jan 2021 01:44:12 -0800 (PST) MIME-Version: 1.0 References: <20210110124017.86750-1-songmuchun@bytedance.com> <20210110124017.86750-2-songmuchun@bytedance.com> <20210112094222.GI22493@dhcp22.suse.cz> In-Reply-To: <20210112094222.GI22493@dhcp22.suse.cz> From: Muchun Song Date: Tue, 12 Jan 2021 17:43:30 +0800 Message-ID: Subject: Re: [External] Re: [PATCH v3 1/6] mm: migrate: do not migrate HugeTLB page whose refcount is one To: Michal Hocko Cc: Mike Kravetz , Andrew Morton , Naoya Horiguchi , Andi Kleen , Linux Memory Management List , LKML , Yang Shi Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jan 12, 2021 at 5:42 PM Michal Hocko wrote: > > On Sun 10-01-21 20:40:12, Muchun Song wrote: > > If the refcount is one when it is migrated, it means that the page > > was freed from under us. So we are done and do not need to migrate. > > I would consider the following easier to understand. Feel free to reuse. > " > All pages isolated for the migration have an elevated reference count > and therefore seeing a reference count equal to 1 means that the last > user of the page has dropped the reference and the page has became > unused and there doesn't make much sense to migrate it anymore. This has > been done for regular pages and this patch does the same for hugetlb > pages. Although the likelyhood of the race is rather small for hugetlb > pages it makes sense the two code paths in sync. > " Thanks. > > > > > This optimization is consistent with the regular pages, just like > > unmap_and_move() does. > > > > Signed-off-by: Muchun Song > > Reviewed-by: Mike Kravetz > > Acked-by: Yang Shi > > Acked-by: Michal Hocko Thanks. > > > --- > > mm/migrate.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/mm/migrate.c b/mm/migrate.c > > index 4385f2fb5d18..a6631c4eb6a6 100644 > > --- a/mm/migrate.c > > +++ b/mm/migrate.c > > @@ -1279,6 +1279,12 @@ static int unmap_and_move_huge_page(new_page_t get_new_page, > > return -ENOSYS; > > } > > > > + if (page_count(hpage) == 1) { > > + /* page was freed from under us. So we are done. */ > > + putback_active_hugepage(hpage); > > + return MIGRATEPAGE_SUCCESS; > > + } > > + > > new_hpage = get_new_page(hpage, private); > > if (!new_hpage) > > return -ENOMEM; > > -- > > 2.11.0 > > -- > Michal Hocko > SUSE Labs