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 64FAFC7EE29 for ; Fri, 9 Jun 2023 18:25:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2FCA8E0005; Fri, 9 Jun 2023 14:25:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DDFCE8E0002; Fri, 9 Jun 2023 14:25:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA7538E0005; Fri, 9 Jun 2023 14:25:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BB3D28E0002 for ; Fri, 9 Jun 2023 14:25:14 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5175B802F9 for ; Fri, 9 Jun 2023 18:25:14 +0000 (UTC) X-FDA: 80884036548.10.9F0152D Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf16.hostedemail.com (Postfix) with ESMTP id 7FCB6180014 for ; Fri, 9 Jun 2023 18:25:12 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=qglArcF5; spf=pass (imf16.hostedemail.com: domain of shy828301@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686335112; 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=kR7meK9SrYWFcO0nvlLiL65rZmB26fYCU3wzB0PdsHQ=; b=K0yGSeQcGek39ea8+OYQ4oKP7FHOaEFcEsOqKw7aO+UUnCaGGQo+d5M7SkH8oSu/RE7VXI bRLfp0Yeo1Yxv9qOxWb14SLIwLr4Y2lZAXleX/PW6kdAL+bRDUDnWVbCExsDEcKvcOODPR ymi0TFXEcQZwCIUrvLWbITUVwboM6/M= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=qglArcF5; spf=pass (imf16.hostedemail.com: domain of shy828301@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686335112; a=rsa-sha256; cv=none; b=LPAFnEBboBfz3Zm8EkleNl73DJA9BHQ7GiLgR9IP24Pf1n+AUzPg60bPNx6rVRUAn7BsIf GztskcKeMsE2+mr1a4M7MUGtZPDB8SC6rRliM3PtkoPCvYhDfVTnfTdt2zJJSZnXdV2W8j 2zB1BnWed4m04tAc4kywqz76ow2znRI= Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1b02497f4cfso8221655ad.3 for ; Fri, 09 Jun 2023 11:25:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686335111; x=1688927111; 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=kR7meK9SrYWFcO0nvlLiL65rZmB26fYCU3wzB0PdsHQ=; b=qglArcF5C7uMcpve+xn5t7ptCNi6uIwQC+132275NZaue9XGXvk2LlsydqyHbQF/U3 DqGDOaVyGxsv/CLoQQ+cJSGL2UeL8zir0ga1+Abo5JI2r+aP27hXfZWjVrVc7+nGlO9y 9u1OUn2sDg0x6cURn52ra0KfysNxyLV58Mot6UfubaxwPwWhFxaxu4rVAThwtIcnGxSz ODRlWBtbE5Iw0YRgP4H7ajsqBrCHlBQaopXQVcszeTFYAEr7YX3PNDDmVOpAvonA45an 1Naz+Ou1NmT+z9LmSwdr2FPgcfQBJbPmXQm3FVE7RDniIvyB4w4ssrudcYVPa45nRg7l sRUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686335111; x=1688927111; 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=kR7meK9SrYWFcO0nvlLiL65rZmB26fYCU3wzB0PdsHQ=; b=ctheu567NGeKf34ajIRaxv+vtLwxX5xFtBNCSSRa5VMr+BN+eSab+X4PLM4qEHJY3f gv0b4Mg4UVsYXfUgFVWNRlOSFmn9RhtWxVM/vYfvuoBxshVE9cvItq8JqqFOHI/lWJrZ 3Y2SlavaNpT3QQpY2Jv1lDiQ4OdqjqqeJrk4+58XOT8l4BoHfrswlWsMYqLnaji6XtFk Ep6M8Ymq89s8pHqzHCtLUVeNgB0EZWiIAz0+GhAMUQLUXAFA/5Ik/CGVPu2GKNr3Io6J JITP6R+gKIxNCg1THkyoUKUu1LN4vSNHpkbuXVLzxW4TPfNEEnEGznraKdTkpm0EyIum hOxA== X-Gm-Message-State: AC+VfDzTFBgQtwA6D8oY8+O4RabemFON+tVE+VJnlk5DrB1NSSIjnKTb I+mSI3cjIUZLnEt9pUb3fUP0YJNQPh4HDaBQMS0= X-Google-Smtp-Source: ACHHUZ42DK2++9rk+pzDyjW4Qwrg6Mcv+XFGZIjR22iyoWNSTBK35PJUY7gUtZnBfRv3Wt8R1C0hwV6PYNzfF9SWCmQ= X-Received: by 2002:a17:903:41ce:b0:1b1:76c2:296a with SMTP id u14-20020a17090341ce00b001b176c2296amr2041083ple.60.1686335111206; Fri, 09 Jun 2023 11:25:11 -0700 (PDT) MIME-Version: 1.0 References: <59fd15dd-4d39-5ec-2043-1d5117f7f85@google.com> In-Reply-To: <59fd15dd-4d39-5ec-2043-1d5117f7f85@google.com> From: Yang Shi Date: Fri, 9 Jun 2023 11:24:59 -0700 Message-ID: Subject: Re: [PATCH v2 25/32] 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 , Lorenzo Stoakes , Huang Ying , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , Ryan Roberts , 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: 7FCB6180014 X-Rspam-User: X-Stat-Signature: 9u83gezhj5negb9arppm7cahg5z1icxz X-Rspamd-Server: rspam01 X-HE-Tag: 1686335112-671367 X-HE-Meta: U2FsdGVkX19mECPUkVDlYmO2RyRs2CU19u67l1sbu8QKSJc5/Mt02sHDZ5oIGffpxx2C1Zs7bGsoObPiraASA0OOxDCpHtbMrWgb8MIQrJtQXgyrsTWTz0UFxPaIdClq7PlhdSWbvp43JBOvM4XkNsxnn21Xi735nQElwkYGmPToCKhPx6YTqlBRFhG66Br97SYcqXxcYEhyqp2cbLF/izoxB8deuARmScnU89+YEvetOHqlQVgJQJz2aJ6SXfzygim0AXHT6z3+cV+eQ4JwFwj7pQwwnDgt07YTB8sCZOubcs0KB0kS0u7TsoAf4EM0x8a+8UEixX+PqTzEkzSQcZlOtZrCVzsP+f8Ckmb3372Bsjrf7fvZuNht8Kh3fjmJuCjlB7MwzU2kXj0BajxOJWx36+pfIzTzQZCm3uX0/NmU2FVjMYzM9w6NPdxQkr5Vgo34usxPRwA6KDOwHY3gsmsrxGi57oFnvC/fLykiSL7veuZwJRtALqc3b1c8SZcfUnbyMcgtKjeHNO3s006jM3kDbv0lQTL4DbiTfLpjkrCLXcHg0tTellAFpT9TUuo8DKTeNCkixgAEmrJE49M2C8RKoZNBfFONELBoCTID1tLJfnCcG8Nbty/ZZCpG8S07A8ux5AgIUMwP4PffB05wO68lrqEunx5NxTMdq3rF1zxFx/U7U3o6Ye9ZmRLl5gr3a9ZCmaI07TFsOUmjATTw+1Vr9E6hctlbbyjFLojkmYc+RmmtINpD9hWSlyAlTwNavoQg/W/547GSGg13sOawEHckkQKC1F8uuzAgnocd9oo/LxgKw5ut1uoRZuBzJT6RAzJALTNlUIg4/KDH/0KM9RUDmUh24y0D4eElNujKjo8Z85Y62pcLgnVSseyBDYgtG8tObe3rXDa2VI4VFgsV4OOAEIa7leDMpcr+TEGn+u3MngCVh3IdTk68YWQ+qWw//1zfeIvhCgLb+vO8Jwi +w4DcaGL YShF1ply7uf9d9SkoH0wQPnEkHHTI6z5U4OdcllihItjoun1vwQcrVr5lkFAKKRxyXdj9lfx3Q+Aa/F7xzeX0xllKeem70btaIwpK4ddC5GWZpp1iX+YKp5ramxcn6G6qXZVf7r2O6ljCPar2tu1nCOlor/faQdezw4/TEXt9gnxnNqoxngJsYuvOn0sp+Z7tBiDDvOCjr0k4mySb3v1d1LVf3W+nXRN2Nx1A2WGOVDF6a9EuPikc4kSs+nIwZZrn2FVfjcjLa4eVHv7Efc834nbsNk8ekaGAzR/ULHvOwueZ7NU7kTXBDCUvNQ0hOswKG9lgGkiqIsXlMLTWRnsCD1BX3T3Ikp5SKrmj8VrjJYMheC9Pyxh+etUyU7gPVtbl+kc3Mcgxvm9oq7wvctMmCKpQtlTlfmZR3hJYniz7NfTJ/P5lIunyJONL54hyRMUH3LZW 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 Thu, Jun 8, 2023 at 6:40=E2=80=AFPM Hugh Dickins wrot= e: > > 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; > and this removes an unnecessary possibility of -EBUSY failure. > > (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 Reviewed-by: Yang Shi > --- > 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; > - } 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 >