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 691A5C77B73 for ; Tue, 23 May 2023 02:27:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0D04900002; Mon, 22 May 2023 22:27:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D6E936B0075; Mon, 22 May 2023 22:27:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B7339900002; Mon, 22 May 2023 22:27:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A0C326B0074 for ; Mon, 22 May 2023 22:27:14 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DFE1A16045D for ; Tue, 23 May 2023 02:27:11 +0000 (UTC) X-FDA: 80819932662.29.86C6F3D Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by imf23.hostedemail.com (Postfix) with ESMTP id 00C03140017 for ; Tue, 23 May 2023 02:27:09 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=gMh+bNLt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684808830; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=O5HZbHCclTPTsAbhxHOSs80OfYhrVMw6jkGXw+YoSR0=; b=JBuMpJOLtqREf5ZxOJSE9LR6AUnVsuNVpzakgVdIiHPzsm6Rr8TUFVTUr6+sEUJfrs/3x+ PSo0zObmM0SXVKVzkCSf9OhvL7+OzcEtqvRLpRGQROU898/xOmDPPg9jkwh+FnlWQD7iRS vra6NwkE0vrxWgePubDPBm8STZ0JFW0= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=gMh+bNLt; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.49 as permitted sender) smtp.mailfrom=shy828301@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684808830; a=rsa-sha256; cv=none; b=XBgNmAr3X182i5K/1e1bd40i6TpeJBV6HQWA+dOK+lvu3i9HZp4/W6D+K7l65zS4swe50R vizS8IX+L/otFXn1cBr6bSbyoABkMLFQ0gax+9Q/q09dS0RYUBTufq+XtY4TQcX/Gtb6O/ wDnvvWB5BroUcUAubkClHKseLJvalYE= Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-25332422531so3157547a91.0 for ; Mon, 22 May 2023 19:27:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684808829; x=1687400829; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=O5HZbHCclTPTsAbhxHOSs80OfYhrVMw6jkGXw+YoSR0=; b=gMh+bNLtP0wa0RLL9qhizk1/Kzy9cplh+MWPxJZM5cjj0xpy7o+KdeEtKOJSPM7ALj o/u6r32pm4+3hXXEwh1ExjDFI+PKaBvLJHhcBvtMyV6uvrQO6IaJFR4SFcxVydrnAG8w RORBDo9OOejdryaFnVazFJicmcrsMHglxnVchUT8fAoYIKil2GEajK1zwSuKYpquVTDx echFIiHowHrWKGQHccpE4YkJ6oZjjFtLwkDu+S+H724x/4oSWt2Nh/nmwQcdHqwiOZ+u JuyHOYfdL+GgWDVe4oQJpCHtVd/myhPwgZFEH9fr3VqunYKh2VH06edtzzfEK3v8uW23 LQsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684808829; x=1687400829; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O5HZbHCclTPTsAbhxHOSs80OfYhrVMw6jkGXw+YoSR0=; b=ZqsZLq0wXf+RcPhNdM9ahPYKx/lziKIsO13P5VMnfBjniNC/PTJWnsnUYiF2YuFQh9 YBpe4aGyPCaWlwoNzI+7Ja7Hb21hDH8iF8Jtw3UmDFWOOFqdSry1x/QYauNSAg2yzmZB Slus+BWyfeG0L0RTYNOxV4LkkQbxy3l4LzuVUN+s6YjLgHHySTj/rm5WUxZJ2qbTVWRa IMQxdWWEfhA1xtmzeb+b7fTfMaG6OiJJmScC1UoikCpekQq+XMf/a3wVtBSYvVXKt9EM GlAp+H/LlwOp3O8049b7rVhHUq3r13Ou34l7B86ESsZgGyqZdQnPJFJN5p9ssAtoluyM PpHA== X-Gm-Message-State: AC+VfDzB94eyO7Ou3Gkh9cEPi+hqYw46OKQS/S0Ib0x48V6+nfaiBzky 4HGSxLVNIiBJ0N9N3YoFwwF1jzn0OL7rkYolsSQ= X-Google-Smtp-Source: ACHHUZ6WzlFEoYOzBP/0jqmbIKsaRKJbS2GCbtj2bbyJ10rJz8qubggHF3P5jvPje6oOxpTBAqKZ5SDx9Rrw0PutRBI= X-Received: by 2002:a17:90a:9dc6:b0:255:38ed:9dcd with SMTP id x6-20020a17090a9dc600b0025538ed9dcdmr8996454pjv.0.1684808828559; Mon, 22 May 2023 19:27:08 -0700 (PDT) MIME-Version: 1.0 References: <68a97fbe-5c1e-7ac6-72c-7b9c6290b370@google.com> In-Reply-To: From: Yang Shi Date: Mon, 22 May 2023 19:26:57 -0700 Message-ID: Subject: Re: [PATCH 25/31] mm/gup: remove FOLL_SPLIT_PMD use of pmd_trans_unstable() To: Hugh Dickins Cc: Andrew Morton , Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Qi Zheng , Mel Gorman , Peter Xu , Peter Zijlstra , Will Deacon , Yu Zhao , Alistair Popple , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 00C03140017 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ogdswbintmi3gxm5uig88mmppqcq4zny X-HE-Tag: 1684808829-24818 X-HE-Meta: U2FsdGVkX187dRE2hmze5krRIAR4Gls3Usfa2/kcHP4Vu8zUV+TZbo4PR1Ydqum6QhUxH9qODa6IuJp9J3lHTbcb2jIHgD3dFAGKoi053Rwmbh+mGtTpozrZhEawBo8Vcqk0klempzI1VDRW8E2W/j9CmhST2ruQk2KDQ6kfhOP4+T8gqx2sCLmIkUeE0vshHoNYomSxs2EdFIemoPTtSDK/IhmX9DcFTq+W71i3GADnR4X06SqOi+YnsE5DqwgexpIfEIbZNmWXWqUtGnlNGkd7qxZUzJz1kentRpsKy6SZnz8zkVZxukGeGcCJJ47Qb/ViRBspMnsytP6mC1YZ0+tR/KenqsSGn/otnW1fImUmXINwC0v/JLvYxDABj1fOVK9iGQy+N21DiRhJIIJ1oXUBvfR+cLjYiqUt4/LvPoIQ5e94RZNK8g9M/lxAXth6m89oPyd6RMs6TWZ5nJKSyxvnP7N4OQjLTyGjsDzMg5CsV6zXTp3GxvG/xkMTzTvmRXshL41ZKeB7ue0g3LBoQQNdnXkfmyfRqT3NWJ0LGB/woT6zp+HwWxQN8KidGNGOvivg8/iY3pweRUZ/oTTBsjoQOqJCBti3nhZsS8zPI+d3lSO5GFYxdDV9Z2cYa5qpgFWwwavwzUNAeWOgzSoHEDZVVmKRB0P7WM85R6IngACtXQV9L6kTvGMPzMkt74Jn7HnetmaIFtj3oC+VDf72dhvSpF0fnQ8m+YDLfOPr7PxqqmSpYELm93bnQ4MOtWEW6kYe3B/mChXhISjAoHfIRwl1MTBLrep52BDLbg5r1eQpYuEzSeyXru+ntfSXvPgonGP7smI12BMjmyjYefnt5K8ZHirPdBA2MC6t9ESUr/9/Nkzpd9jgwrWr+yfqGVx1ev05WzsmGRabdXPDOZ+Y7SXEBvb7jiWmTINGO9HjAiRFKXXlMKxRSe/ttQJxqdOhTfjFcVUpRgOnGmdFKIk mCWAwq/D x/hTDfk2jrUb78ZTmZ/pSF3rQYqcHCnOlDQuzNQ4K/R8hx4QvdW7jfAU9bG+uQwyAw6KbvPTdbgqnC9L8VAAg1jCVWqN3sVF62rCowk4+20H16MUxpGHuY+FXSb64wxxY+HA4woBPEEU5QodmsNZIQLjB6pHQoRw4RzQUtowNlR1ZM3EHzdnrjZU9hLLGt9ZPwJ1M+dCLZE5C+6r8+cYOEYHvdNsghAnptZ/kO9BWdv8rVcPpGQFkFdJJU3znxpct37QB3HxRMwidFyEUMEV2eJ9MbYtnRHQsc8/vqekqLydmuMX+xx4niQv93hoYUAf4FL44d1wk8e7dX8oGGfOEaxh3t/4irmKnFft/5ErNWuQaJaekoPMuc2waRCjdTQt9MOaIvTyBL2nF8ZFEoLb/6r3ejcWwXXaYO6cygIt8Do2UdJI= 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 Sun, May 21, 2023 at 10:22=E2=80=AFPM Hugh Dickins wr= ote: > > There is now no reason for follow_pmd_mask()'s FOLL_SPLIT_PMD block to > distinguish huge_zero_page from a normal THP: follow_page_pte() handles > any instability, and here it's a good idea to replace any pmd_none(*pmd) > by a page table a.s.a.p, in the huge_zero_page case as for a normal THP. > (Hmm, couldn't the normal THP case have hit an unstably refaulted THP > before? But there are only two, exceptional, users of FOLL_SPLIT_PMD.) > > Signed-off-by: Hugh Dickins > --- > mm/gup.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > diff --git a/mm/gup.c b/mm/gup.c > index bb67193c5460..4ad50a59897f 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -681,21 +681,10 @@ static struct page *follow_pmd_mask(struct vm_area_= struct *vma, > return follow_page_pte(vma, address, pmd, flags, &ctx->pg= map); > } > if (flags & FOLL_SPLIT_PMD) { > - int ret; > - page =3D pmd_page(*pmd); > - if (is_huge_zero_page(page)) { > - spin_unlock(ptl); > - ret =3D 0; > - split_huge_pmd(vma, pmd, address); > - if (pmd_trans_unstable(pmd)) > - ret =3D -EBUSY; IIUC the pmd_trans_unstable() check was transferred to the implicit pmd_none() in pte_alloc(). But it will return -ENOMEM instead of -EBUSY. Won't it break some userspace? Or the pmd_trans_unstable() is never true? If so it seems worth mentioning in the commit log about this return value change. > - } else { > - spin_unlock(ptl); > - split_huge_pmd(vma, pmd, address); > - ret =3D pte_alloc(mm, pmd) ? -ENOMEM : 0; > - } > - > - return ret ? ERR_PTR(ret) : > + spin_unlock(ptl); > + split_huge_pmd(vma, pmd, address); > + /* If pmd was left empty, stuff a page table in there qui= ckly */ > + return pte_alloc(mm, pmd) ? ERR_PTR(-ENOMEM) : > follow_page_pte(vma, address, pmd, flags, &ctx->p= gmap); > } > page =3D follow_trans_huge_pmd(vma, address, pmd, flags); > -- > 2.35.3 >