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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C2F5C433F5 for ; Tue, 8 Mar 2022 01:31:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EBC8B8D0002; Mon, 7 Mar 2022 20:31:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E6BFC8D0001; Mon, 7 Mar 2022 20:31:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D5A2E8D0002; Mon, 7 Mar 2022 20:31:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.26]) by kanga.kvack.org (Postfix) with ESMTP id C5CC28D0001 for ; Mon, 7 Mar 2022 20:31:45 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8B97A238EA for ; Tue, 8 Mar 2022 01:31:45 +0000 (UTC) X-FDA: 79219492170.15.B7F0440 Received: from out30-54.freemail.mail.aliyun.com (out30-54.freemail.mail.aliyun.com [115.124.30.54]) by imf04.hostedemail.com (Postfix) with ESMTP id AEB4440003 for ; Tue, 8 Mar 2022 01:31:43 +0000 (UTC) X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R691e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04423;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=20;SR=0;TI=SMTPD_---0V6b2FkD_1646703095; Received: from 30.97.48.56(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0V6b2FkD_1646703095) by smtp.aliyun-inc.com(127.0.0.1); Tue, 08 Mar 2022 09:31:36 +0800 Message-ID: <3d286f44-e91d-b68d-63f2-e66529e3fa54@linux.alibaba.com> Date: Tue, 8 Mar 2022 09:32:39 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [PATCH 13/16] mm/migration: return errno when isolate_huge_page failed To: Miaohe Lin , akpm@linux-foundation.org Cc: mike.kravetz@oracle.com, shy828301@gmail.com, willy@infradead.org, ying.huang@intel.com, ziy@nvidia.com, minchan@kernel.org, apopple@nvidia.com, ave.hansen@linux.intel.com, o451686892@gmail.com, almasrymina@google.com, jhubbard@nvidia.com, rcampbell@nvidia.com, peterx@redhat.com, naoya.horiguchi@nec.com, mhocko@suse.com, riel@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20220304093409.25829-1-linmiaohe@huawei.com> <20220304093409.25829-14-linmiaohe@huawei.com> From: Baolin Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: AEB4440003 X-Stat-Signature: 7mqik4qec86uxibwfqkr5qpa1r9owpkc Authentication-Results: imf04.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=alibaba.com; spf=pass (imf04.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.54 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com X-HE-Tag: 1646703103-79563 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 3/7/2022 8:20 PM, Miaohe Lin wrote: > On 2022/3/7 10:14, Baolin Wang wrote: >> Hi Miaohe, >> >> On 3/4/2022 5:34 PM, Miaohe Lin wrote: >>> We should return errno (-EBUSY here) when failed to isolate the huge page >>> rather than always return 1 which could confuse the user. >>> >>> Signed-off-by: Miaohe Lin >>> --- >>>   mm/migrate.c | 6 ++---- >>>   1 file changed, 2 insertions(+), 4 deletions(-) >>> >>> diff --git a/mm/migrate.c b/mm/migrate.c >>> index 6c2dfed2ddb8..279940c0c064 100644 >>> --- a/mm/migrate.c >>> +++ b/mm/migrate.c >>> @@ -1618,10 +1618,8 @@ static int add_page_for_migration(struct mm_struct *mm, unsigned long addr, >>>           goto out_putpage; >>>         if (PageHuge(page)) { >>> -        if (PageHead(page)) { >>> -            isolate_huge_page(page, pagelist); >>> -            err = 1; >>> -        } >>> +        if (PageHead(page)) >>> +            err = isolate_huge_page(page, pagelist) ? 1 : -EBUSY; >> >> Could you elaborate on which case the huge page isolation can be failed in this case? Or you met a real problem? Cause now we've got this head huge page refcnt, I can not see why we'll fail to isolate this huge page. > > IIUC, this could happen when hugepage is under migration which cleared HPageMigratable. Page refcnt cannot > prevent isolate_huge_page from happening. Or am I miss something? Yes, that's possible. Thanks for your explanation. It will be better if you can copy the possible scenario description to the commit log to help other understand the issue. Reviewed-by: Baolin Wang