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 B960CC3ABC3 for ; Thu, 8 May 2025 02:23:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3BF926B000A; Wed, 7 May 2025 22:23:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 346DC6B0082; Wed, 7 May 2025 22:23:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1E8E96B0085; Wed, 7 May 2025 22:23:37 -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 F1BBD6B000A for ; Wed, 7 May 2025 22:23:36 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E4DAEC1D74 for ; Thu, 8 May 2025 02:23:37 +0000 (UTC) X-FDA: 83418144474.07.DFB0884 Received: from out30-124.freemail.mail.aliyun.com (out30-124.freemail.mail.aliyun.com [115.124.30.124]) by imf23.hostedemail.com (Postfix) with ESMTP id 98387140002 for ; Thu, 8 May 2025 02:23:34 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=AAjqQWLR; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf23.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.124 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746671016; a=rsa-sha256; cv=none; b=FGO1g29d4dUKdhuPE+XQQPvvexgwZ7XuQqR1hen+l9iTyUmrNjx6XfeJ8Ea5EM4UeJc5XI oWbM8pXA3zSceJyE8aUlhhdzisJT+lOA02gQn4Ki/Q2DHXeDgSdBvDuX/ID8uu1cbRb7E5 4Ghsqd+p1vTywFVPxRBSwsd4q6wGkhg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746671016; 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=tIv6gNodGfIal1cnwEB797QvJJYe8+nen/YUc9IXohc=; b=HetcyTv6tq7nrdXR0lsFlUDWCX20GsCUF/O/lQTCwVecSyHUvfoH8TQTxfCW56XDnK1BtM LXUSvLiKJHdauFkEkMcXJpY4LuKgLUate7KgCcWBgAuKT30xhsM/h3mBc1OtuuUwW5hdjc LNPudA0JkuFXN0LaOddhNtAFbNa6irA= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=AAjqQWLR; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf23.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.124 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1746671011; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=tIv6gNodGfIal1cnwEB797QvJJYe8+nen/YUc9IXohc=; b=AAjqQWLRqv6zAC7TApVW+gsE0vzwli731Yse3/Qbvx9B4rneqysy03LQ82/y2MVsg8NKMBy7/qjBFcjvgPiEutoP6acAk6MJ3LZU1jGoMAs3LSYCziAbFFc9kPWy3tUnROwc5MhnqkYOUuTXZ9rAn1Qh9upUKQLQjs/Ilxt2FFo= Received: from 30.74.144.116(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WZyfJ2W_1746671008 cluster:ay36) by smtp.aliyun-inc.com; Thu, 08 May 2025 10:23:30 +0800 Message-ID: <569e592c-1c30-4c03-bcee-c1670ac4e159@linux.alibaba.com> Date: Thu, 8 May 2025 10:23:28 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] mm: convert do_set_pmd() to take a folio To: Matthew Wilcox Cc: akpm@linux-foundation.org, david@redhat.com, hannes@cmpxchg.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, ziy@nvidia.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <8e33c8a65b46170dfd8ba6715d2115856a55b8f6.1746609191.git.baolin.wang@linux.alibaba.com> <88060373-d0b8-404a-b53b-9b5a54f5ba6f@linux.alibaba.com> From: Baolin Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 98387140002 X-Stat-Signature: x8x1mx91dswodx7fh7uypkt4ig7ff8y9 X-Rspam-User: X-HE-Tag: 1746671014-869577 X-HE-Meta: U2FsdGVkX1/pTJguIMJzbg8WnYOJ5cTAyk6BRVyrteMFrKWB94xO5qpfTy7iEBRS0EQTeWMNdVrsByY3erE92Z1tpXykxLLVy70epBP9G2DniiWqXjkydQ4osl2bCVD0KMcXF3L2VS69fSqkHtf1GbJDkMt3TbQLhz2IExsdBFkR8MX1jwbxgj2LwPQo21nlfjWkNinIE+U9GzcBZhM8YDWbibbVjpYe4Ll0t3/lfpYpLagA+UugBuiHydVDO80L20pBkMOezPSQKJM1tEyhudoWDo9TANW/aWFqKtBn9Y70yYTQfOXPGG54nMd0b/6jzT/0bAsS4CpubMSQ8XEUHzRN6EaQ4eLeB7iWxQJAlJypETSHRQPlff3zAemCypIX8oCGPWqrefQrXxiym796UjZG8Y+2T0gKYYbfkbFrRNUvtVaOJU5gsmJciHqnP6G97ENfwuDGFQ0/lhjbDGvFiDOklqLE3zWDEHv9pGGZLk28SlFeCwbsZWwBF79nVBmyiwmOhqJoGmTw22cYC9agoviKx+sLmyCJ+gwLcCQ7nZT49RxBwyQWfP9/LmeNojjAQYulsnTsKa9wZ/dRI267LEKnC/BOCVzTnmasDVyzKznfuBrTROwrOOo24HfkpiA4Z/rwnBIOqLFA0Y4vv0y++lGR6Tzf0QUB+9I+4Ix6oI7iVld/PaJgiYE3Fx6CrQ0/DdDQtvIyqTfEmIDXea6oRSkTtIDfIkOhxynrZoGp51Y9MGEMWcr4TLlV1BLZyLXE3qUlfSaQoOcIUhoFIiyU+ANSPDhl725k2jpynGCHF+tAbi4N+ZfgFVbtZtB/kle547VSVjcJS+9Q2/MQi8kO14Crec4o34MpMRIhLVnMFFCgUqiOdR2liydCyTL2y9cmaQJjoxc+K9j7QURJ1IMlF8RGwZ7feYisYGzQgzx3kefF/sVTu79kSp8xUcO07nkYkhd/szqk5WIBKY/7y1G 98NRNEYP NFts5IJTvj9x7gNgfut0W1NMlHg0rdpIs34m4sOH8mqIfmoZye51k2ku4vVYq8AsRdvH+R1mDZZex5ZZBplUZ9F932LOUhrSC0nKIhn4159bps5lOIumX94aWYn1CnYOMMqgR568eYn2x6n4+8wh973Y8jIUivgnOnhX4g/ifM13ZnkPTt/3FmP2zKRtkyv0AtHxIwuFhU/DT+aRV6IApzd6O2jmOQsqaas6l43KAfIAJ6ZLjEjtUGvlFwKVSqrBK+md0AvMEbJVpcx2pM94aXSxfYPrHexvWCPNEsIHWeVxO6MYkrsvmAmQL8eMIahLN3dNYeStq5J2JWic= 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: List-Subscribe: List-Unsubscribe: On 2025/5/8 00:47, Matthew Wilcox wrote: > On Wed, May 07, 2025 at 08:36:54PM +0800, Baolin Wang wrote: >> On 2025/5/7 20:10, Matthew Wilcox wrote: >>> Because I see nowhere in this patch that you initialise 'page'. >> >> Please look at the following code in do_set_pmd(), and the 'page' will be >> initialized before using. >> >> if (thp_disabled_by_hw() || vma_thp_disabled(vma, vma->vm_flags)) >> return ret; >> >> if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) >> return ret; >> >> if (folio_order(folio) != HPAGE_PMD_ORDER) >> return ret; >> page = &folio->page; > > Ah, fair, I missed that. > >>> And that's really the important part. You seem to be assuming that a >>> folio will never be larger than PMD size, and I'm not comfortable with >> >> No, I have no this assumption. But do_set_pmd() is used to establish PMD >> mappings for the PMD-sized folios, and we already have PMD-sized checks to >> validate the folio size: >> >> if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) >> return ret; >> >> if (folio_order(folio) != HPAGE_PMD_ORDER) >> return ret; >> >>> that assumption. It's a limitation I put in place a few years ago so we >>> didn't have to find and fix all those assumptions immediately, but I >>> imagine that some day we'll want to have larger folios. >>> >>> So unless you can derive _which_ page in the folio we want to map from >> >> IMO, for PMD mapping of a PMD-sized folio, we do not need to know _which_ >> page in the folio we want to map, because we'll always map the entire >> PMD-sized folio. > > There's a difference between "Assert that the folio is PMD sized" inside > the function because we know there are still problems, and "Change the > interface so we can't specify which page inside the folio is the one > we're actually interested in". Fair enough. So how about adding a new 'folio' parameter to do_set_pmd(), similar to the set_pte_range() function prototype? vm_fault_t do_set_pmd(struct vm_fault *vmf, struct folio *folio, struct page *page) > I reiterate the NACK to this patch.