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 9331EC77B7A for ; Thu, 25 May 2023 22:33:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCDED900004; Thu, 25 May 2023 18:33:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C573C900002; Thu, 25 May 2023 18:33:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF854900004; Thu, 25 May 2023 18:33:44 -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 9C5AA900002 for ; Thu, 25 May 2023 18:33:44 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 59344A09D3 for ; Thu, 25 May 2023 22:33:44 +0000 (UTC) X-FDA: 80830230768.01.5B50C09 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by imf17.hostedemail.com (Postfix) with ESMTP id DCE0D40008 for ; Thu, 25 May 2023 22:33:41 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=LPvC+uHp; spf=pass (imf17.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.54 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=1685054022; 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=it1+6Jg22xuuOE9SYPAN/iwlzZWUeu8495FiEy3sBB4=; b=QWYCNDJK/wFvl5Vd3IOLZpXnyJtFCL3Ui3htBFlsBfkEUpEztzqfPJMsAjqFIkUfPbcB54 C6xce0YnxMt2vW5eY74vPpbxNxi4Zm8Nbk5SOCmwarOiB/qfjdy1PWbDn7kWnyxwFc6IOq cR1s8GCBqU/TCTrcyfZZc2uMO1j4TbU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685054022; a=rsa-sha256; cv=none; b=HVMPgYrgop6Azrh74X/o7F3NDNa97AO3pqNYKgPUVReNKcfPgN45vgoSyXqXH6V9/zzHlh /S2kJ3ADh7LhDvwxYpuFUHZPvTpwGSflrGs5xUtJZqM8Z3HwL9wV+lXZDR9RjD0TXs3vaf aHuy72sJ3f4LnfTEcnxd6s3qmEe7UO0= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=LPvC+uHp; spf=pass (imf17.hostedemail.com: domain of shy828301@gmail.com designates 209.85.216.54 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-2553663f71eso191102a91.3 for ; Thu, 25 May 2023 15:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685054021; x=1687646021; 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=it1+6Jg22xuuOE9SYPAN/iwlzZWUeu8495FiEy3sBB4=; b=LPvC+uHpAP0av52DhugHetYXjt4cMNNYKSwV2HzaHLIBMRWuQ4Pja4It29dCkjjjxo 0X1A+e+/EkNNd4XcWvNZ4WMzmbrNTNS2UibgKnA+QMW1rrtnIrptgVvvDeEzekwu6wkI 6D/Nk09iPiFSMp2k0OHcc+NPZZBu5iPJmbne15OaEcNMz1T34sAZFmfNXTLi0kI7mbpb ER9wzYIh93XU+DyxZhOu//36NsgCHgJBdJzHqhp6pFO+2IpqufododvHGaxrnFqMh5+5 +/ETeTOCeCsYvcKkG0vRzyLyXFOHb3JrGU2n7UYG480gjBnP78CbOZ5WeQmwZJ8Bx82b IHLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685054021; x=1687646021; 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=it1+6Jg22xuuOE9SYPAN/iwlzZWUeu8495FiEy3sBB4=; b=JYf603wOI/upbknR/M9RYfIGaK5IadRxWWsoFnPJmH8ckoQCnKPa12xlzTQ4K+eoSZ RU/zv35OvAYF/zL6X1hderBkB/sN3j0FVIbofLz2Rsqa40ipwz5uAytQjo42pNeZPLBw kkgWFXxR3Q1S4cn3xE87FoM6MRibB+fFDYELjQS/sSIug9TjYiLhgdN2//5uaZ3f1wK+ oan6VjEQAInuOgiN9HIbiFlRNh9ELpPkRxnBcUAwoAVO66/upI44hOzE5H1/l85g5Xa3 6/vgFQ915cfl95zWzcUOrpLmf4uvjm+dOcR9u7TkOvKl3ViBwAVYFnRFcRRIYwsvbGE4 56/Q== X-Gm-Message-State: AC+VfDyJZYIsvHNlAAwWBLW20wetbHtGb0GDpU8sp41Ms8vfeUKTv76I W4FHvwqsyQx1F9Z1EUNXsL4Yw64k1XwRAYssYtw= X-Google-Smtp-Source: ACHHUZ6t0QJ7YQpCpJi+CO5H2M5VDiG9VJSR4X8q/Jyc6UBpQX/qJ2MAhwjTgB1kJZ3tLOpIxEDkLnnFNffIaExm6Jo= X-Received: by 2002:a17:90a:3189:b0:253:8c39:642 with SMTP id j9-20020a17090a318900b002538c390642mr271989pjb.5.1685054021219; Thu, 25 May 2023 15:33:41 -0700 (PDT) MIME-Version: 1.0 References: <68a97fbe-5c1e-7ac6-72c-7b9c6290b370@google.com> <3d548f45-9ff9-d73a-83e0-bdd312f524@google.com> <7538c751-9bee-75f9-50a5-1bc12f919e8e@google.com> In-Reply-To: <7538c751-9bee-75f9-50a5-1bc12f919e8e@google.com> From: Yang Shi Date: Thu, 25 May 2023 15:33:29 -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-Stat-Signature: mqddsb3q88bdjcx4tbdwght5iwx66cyp X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: DCE0D40008 X-Rspam-User: X-HE-Tag: 1685054021-527045 X-HE-Meta: U2FsdGVkX19AQWxRcQapqF6yd1AWpmP4EvKJWJl1qO0Iont1eAHLpOv5GxNI//SPDNhRzp4Mk1GiBjFg47wvBClsOoojTUaoWLtt3BPTc+CIujMS0EMZXeI3y3BgA4J3ignLapm3RWR8Zqfs8Cu81hjda5mSSjoyeLMLCn9bPeFRAQY59LrOAZUKoP2884iHggkxgUs3sIB/ENmbTRSbUgjHMP/Cw9+mUI5yabt7s2Xxf8P/R/ImTNhYjRGVHHDyP+1kyGqBb03c+DJS0CmjgpufxgIjhUX/9mb7y+GNJRapxfR/TTwfQfyryUyivrCE47IjTMwSwza8eBjbj6v6M9pPxUqMWB4hvy4RXLNDzJwrAH9h9wFSIogKDPaNtQjjc1N/EIz4cvAviuY/ht+KkYJZPkid9IEnQ4Ei9ef+LlYsuLgFw2f0+9mFPnXuHSFOJwR2vF4HwBbTfR/NRlA4qlqBAjBK/rMQlKn7GdGTb/Ao4Akug6bkgUvSsO80K6q6+TsqJb0SCmKRa+IqhEp9FjV/fdIER+7NXhVkFKWlO9QJ1tZxpjBHYwar8040P68WfiTD9IIOjlaWa2adsbCdw6iqeQbDcaQw+ufN9hFc5qhbVdxpNgdg70hAEEgqmk1/3JfqOn+7qnQBHVEBHhw9zj5vkdKlrAkuRExl+IZTxzRirtGVhTuyTP/oTGK0QfvF8hGMClUGgaKO2kjzPs3wcLiu9Y1SjC0vNDognfgih8cc0S2wph+iOgaInO34S7sehHcnrO+V/KFJlwolcSoNkZq8icwNA4dBHco2eiHqycyIbfEOSC3rjFfaTDbmaofMP6FSQHLD3dJtLSjJIakdcT2xVV2zsNcJydDzHLhugWsxX4X8P+kSUEiPoXpH9XWDwkjMtuG343LJ3NQcvz9B8PJRhL45KGJARp+4htpK1ml59l74PxSiMe2NAeyMTIQOVAXzWZPsk7WuNHwKHVm PE6jTEZk hp+Gv6Q6HxvERdZkMuIRKoTKDqEONoZCYUHuyIPCthPb0M3KaAFqvV+ZyKMGHJCJ14Swt6oyyN1QxstiGpoMufYeYXeyZk7bXTrDDURJW+vXqAZJUH96HLLJkuzBo0Y/gtXA57ksdDBLok04AO/pjTJ+W8tUkUy0rcFXRGyrbWIse+oxmSFuj7cpvTynGerrwRmuqzzfZ/v9Mmv/Klzo1GLwZDcpAMihZhSrrn15YBRgHJgusaMigVgfwZCakxVu+O6/VhdINtUexx0gRBD04Rl8VqTO1MCAPX9Fe8/40356EYGOXXKglDZF0d15szNKrwdjQ3xX513b1t38H56zvghFPAHAr8Ads8PIw94mtbZvsyJ1dcCaNaRxRQuUDSJls7o7fd2AhgsMrekiLRXXIOp0ZD16QsIabkZR7elf7iB8dSkE= 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, May 25, 2023 at 2:16=E2=80=AFPM Hugh Dickins wro= te: > > On Wed, 24 May 2023, Yang Shi wrote: > > On Tue, May 23, 2023 at 9:26=E2=80=AFPM Hugh Dickins = wrote: > > > On Mon, 22 May 2023, Yang Shi wrote: > > > > > > > For other unstable cases, it will return -ENOMEM instead of -EBUSY. > > > > > > I don't think so: the possibly-failing __pte_alloc() only gets called > > > in the pmd_none() case. > > > > I mean what if pmd is not none for huge zero page. If it is not > > pmd_none pte_alloc() just returns 0, > > Yes, I agree with you on that. > > > then returns -ENOMEM instead of -EBUSY. > > But disagree with you on that. > > return pte_alloc(mm, pmd) ? ERR_PTR(-ENOMEM) : > follow_page_pte(vma, address, pmd, flags, &ctx->p= gmap); > > Doesn't that say that if pte_alloc() returns 0, then follow_page_mask() > will call follow_page_pte() and return whatever that returns? Err... you are right. I misread the code. Anyway it returns -ENOMEM instead of -EBUSY when pmd is none and pte alloc fails. Returning -ENOMEM does make sense for this case. Is it worth some words in the commit log for the slight behavior change? > > > Or it is impossible that pmd end up being pmd_huge_trans or > > !pmd_present? It should be very unlikely, for example, migration does > > skip huge zero page, but I'm not sure whether there is any corner case > > that I missed. > > I'm assuming both are possible there (but not asserting that they are). > > Hugh