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 B7344C369AB for ; Fri, 18 Apr 2025 04:27:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2EF612800C8; Fri, 18 Apr 2025 00:27:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 29ED02800C6; Fri, 18 Apr 2025 00:27:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 140712800C8; Fri, 18 Apr 2025 00:27:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E71DA2800C6 for ; Fri, 18 Apr 2025 00:27:08 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 04F9C1A0B35 for ; Fri, 18 Apr 2025 04:27:08 +0000 (UTC) X-FDA: 83345879778.30.BD0CB02 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by imf27.hostedemail.com (Postfix) with ESMTP id 0C44340009 for ; Fri, 18 Apr 2025 04:27:06 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LjaweADy; spf=pass (imf27.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=nifan.cxl@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=1744950427; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Uvh6EcREOhk+tZ2ig1dYWFCZtbIMCQishByXGMuTreU=; b=EhuO4qX2SQs+5FW2fUMazJtoPfaBDXi95FyU638oT9Km2qzEfYAWzIKaeDng4eP8hZqjm9 nQTHPocZtFlCwJKzMUDnggdDAG48r4RJbHVf6/DXh4fEgy/j2ePvio9wWTftlWg9WJvILG xNp+oTS+LtgiYvXe/ECHEHzIfol+flA= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LjaweADy; spf=pass (imf27.hostedemail.com: domain of nifan.cxl@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=nifan.cxl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744950427; a=rsa-sha256; cv=none; b=V1L4q1k44neYhgpCIhrxcuKu7Adf3gv4BseEWblSkdS349btTj6bLxcPjSXdixzh0rl7+T zVSPENT8PPi0ChNA2HU/9UCz3IseNs95H806TLpbIz57vUbUDyBGuEwJh3MIvSXFkFrCMj pdHL8sIQO9EjJ+sUChWKAAMBGlgRAQk= Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-3012a0c8496so1181778a91.2 for ; Thu, 17 Apr 2025 21:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744950426; x=1745555226; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=Uvh6EcREOhk+tZ2ig1dYWFCZtbIMCQishByXGMuTreU=; b=LjaweADykOyXyewBDxxuK0m3p9s8zdLcLAVeC8ZDKtd9Nopui6DDALWEQjnO0WhZSm zxrXaCAFvgDdYFWKvyOh7Cy9gsZWUvE3l8b8ZZnVOOlpFkEkXuY/c34TrfsAijPQEi79 RH6ETnM9I1w4GyF7hl9E+5v6AfgR+o1cQtHn1Ga1B48g45hNxYIDVuoXfWCuGwRLXdmi JiIcwogmMKhWqhx3qcXfaI3/KiAhnbSx4TKTxev1K0LgqQ6gGRqIz/Cemf+28zY8Cv9g ICEysBCztmW5N56DZJyntBNrk+vbriEWB1b+nU2Mu8FPffaG+gA0XUb7GOXhsZs4E2m3 R1Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744950426; x=1745555226; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Uvh6EcREOhk+tZ2ig1dYWFCZtbIMCQishByXGMuTreU=; b=jk+0XLNjng3+qoNbfEzUXdM9KvpvGun+ZM8KmzAd+OP7kw9MCg14X39/SnJVRaoe89 B39yc1a3OKtw80kPBaZcTtmLSbwV6x/OueSRkxjF0RkciaLB8qVelxT1e7pkuBHmUTxL PlDIXNlAUGav4ifurpZy0W3PPpCxphBQzA65r/sSqSQp1XzDGH/cwOWRRhH03szFjsm2 blmf8atHlglL5QoDINasFtSKHnglCRJBBthiDElA2VC202aXLvfOjSWmKOkTt8TGb8J6 t+wtvYqQRqLpXp/MyPlNIlhqtewYQMXGxI+NvAIULAJhDpHWgh+vBI9y+xkTN5tOSuh9 knXQ== X-Forwarded-Encrypted: i=1; AJvYcCUuHOarqJvkDe6ZFVTnOgNPwhkYp7OSWTctBhwEfHb6cxY8S315NSNdbOtJIKq2QrAJ9rS8h9wgJw==@kvack.org X-Gm-Message-State: AOJu0YxRt1Cq2AsFa6a35Suzd4Jg7BkYExzY1zaMkiNaxRu0h0tX1kMg m+g+t4nr4G8Ejulmrizvcb67qNwrC6Rz4dQuLS2+mjhXEGsbeiPc X-Gm-Gg: ASbGncsc3xei/hZMudtuEW3YQywRofD/a9CTMqReVJkpxx3s90VgN+/6G5gh+8cnkpw yqteb7Lzuu22ZxbwMCN4GAUYWfOA3vievkDaig0Lnr5Iuh7zsKtJmS+L1PriToBfbbntvIig3Je R0FvqIsywx5BgJXhL7+XhSFOYyUeZIHPqRcopxUezARAvFzAmOPwdoMY4XjBwSPPCh1yDyQl6iE TR4o09CiuJO4PXOwZh4K4a2qa978LrywpV3AH7U3W9knA3hjSOxBioZmOibJ+9ChATzv1o1g51T wy+AH7KPWt+gmflnoJUq+7Ti/Qbua55SjFkY X-Google-Smtp-Source: AGHT+IHybhoKjrnyjI0qsqHHAfqJ2XX5sQZ/pqutbNqjnlq3XP2Yul9Y74lQ4sRNFJxBkF0PBeRasQ== X-Received: by 2002:a17:90b:57e6:b0:301:1bce:c252 with SMTP id 98e67ed59e1d1-3087bbbccb6mr1831862a91.27.1744950425684; Thu, 17 Apr 2025 21:27:05 -0700 (PDT) Received: from debian ([2601:646:8f03:9fee:5e33:e006:dcd5:852d]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3087df05153sm325549a91.11.2025.04.17.21.27.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Apr 2025 21:27:05 -0700 (PDT) From: Fan Ni X-Google-Original-From: Fan Ni Date: Thu, 17 Apr 2025 21:27:02 -0700 To: Muchun Song Cc: Fan Ni , Sidhartha Kumar , willy@infradead.org, mcgrof@kernel.org, a.manzanares@samsung.com, dave@stgolabs.net, akpm@linux-foundation.org, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/3] mm/hugetlb: Refactor __unmap_hugepage_range() to take folio instead of page Message-ID: References: <20250417155530.124073-1-nifan.cxl@gmail.com> <20250417155530.124073-3-nifan.cxl@gmail.com> <363E4489-76E8-4FD2-AD17-2E0B46160CAB@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <363E4489-76E8-4FD2-AD17-2E0B46160CAB@linux.dev> X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 0C44340009 X-Stat-Signature: kbkbwqf96qogfk7y83akkumsjugkinqi X-HE-Tag: 1744950426-253379 X-HE-Meta: U2FsdGVkX1/34iV9KcC5qoQnIsjgMfNgpgE2tNJL0Q55g1hrW3tilQkT6eJp07z+zPlARMH90XlqAdgwgomU/+RKXpWp9O8gv2fss/wopBiCAWxuBybh5/2tb3jJo4Co+/YdCk89nIObP82sBZDqxUv7szGTgfuh3qKmrIA8J5N1QAal0ADjM46F9nGfn17Hot6XuOqIi7kA9VX6OXRAoXrK59vNSsOU8yIHkfmo7kmSHMxhIQkX1F+KTe4nuPPLFNwUenNXGqScMeTYG+HhnxipZLeh3scJ/ZO+1Stwr8R+uslEAb2pgb7OV1qIEeLlrmP63KlAMvFjAtkG4low+ROpZXr3duQ0tB24TMpdRzRTMD2i6e+CG+qIJouRN2CfzEwklcCfRyyxfxZjGENXICESfsM7IM0khgpAogdWfXv0nznIrcf3Ix/Qfxm2b4IrDWajOQDabzbCKkfqBZxT1MLNvoW7HvScZun+CEBHj7WZVQp/00uTHLgJ6PfNTyzPv5O7dZQpvG+EIdNE0j6b5PCN8KjB4oS73oTsl3i20h/HkRVygHpyEa/wc5M2MjWZuGWduyAwB+AZFg1UGBkXjepd9CvqJ8aN7kSG/9/ZzhhY+N+fVCHtFeLNTyvZYlBopfSoSQrFxjskwabQC60V32/NhJB9chIdAkUBc9HtQRvzBtj6mU/ym6iFQOddOFtVsMza1DIGN0ogpht6YpFoOq7afMyUuN51zoPjn2bgP9MGb6uGxyj4z3XYXyH5tPsVxnBW2Qg5yzj5LTFyFJnj3grnDf2f6GyIEmiuTMjXUKY3uh80+WQzmY+QTA6OKjnqB2mJaFRjV4wCopc8802CNVCCa4EWMrBH/vg7VySMpRrmHjeTBtytvZ/iTBNZjdneEm563djcVPrV6c6tMe7h7QQ1uunjKI1958FDKPu4DOpK0UZq1D/gQUtOYIVNuG2BOUDTMWqnk5IwzgrsEoc 3oikLDVE dYxKYMvDeIAI2/LpiHI6l6PtK4jSIKrJNoBy51T4hWycJNl95vwYXWFUYyu1xe/j2W6WmIHEc3s4wEpB6A7iSaXbpCjLLllPtiwmvf9wwr8QLN8lcRoFETWRpyPpiO29+ps8NHORllP9XlozKy2Fa5KGYZHAvi6DM0e5oYZnW9+KpRWV6JlVaabqA8xRlJ99I2uMsFXnIEd4fSfbKyqBVmNcPUKz1Hqqg0q7z5RPakwwRYgpQhC1GzuYNhDmmi04MZXgwPadoyii9N5R5fIBQTsxaznhjbaJ0+YlbeKVFXtOvmeyrpc/tUNJ+5dL4D/0cnD99OhANjp+ExiJiTRJSsQSR2yrNdbahWiJpiR/gc6rqAjeLUWprIsyarZ/9fci+PartyGXcdWFOBVoIQvnUq/7cmgTdW8Qu5/2FCoO+wZ5TvmgMAhqTdhXMMQsUKsBSoOgC5WVJ+6MbIeCojfXep3m7RnLW7MciytzglVoLlEt8IPIeTUunzt6IZ4kD/w8MtIn28o+crF8quYxQQkKY3yI4+SOuf565w/LVkpwQ4NJIQnVvFH8+ByyPhQZsWt1yjfFpHLVSf5XBxurKKOw99+fIniYfuPQK/6NI 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 Fri, Apr 18, 2025 at 11:03:59AM +0800, Muchun Song wrote: > > > > On Apr 18, 2025, at 00:34, Fan Ni wrote: > > > > On Thu, Apr 17, 2025 at 12:21:55PM -0400, Sidhartha Kumar wrote: > >> On 4/17/25 11:43 AM, nifan.cxl@gmail.com wrote: > >>> From: Fan Ni > >>> > >>> The function __unmap_hugepage_range() has two kinds of users: > >>> 1) unmap_hugepage_range(), which passes in the head page of a folio. > >>> Since unmap_hugepage_range() already takes folio and there are no other > >>> uses of the folio struct in the function, it is natural for > >>> __unmap_hugepage_range() to take folio also. > >>> 2) All other uses, which pass in NULL pointer. > >>> > >>> In both cases, we can pass in folio. Refactor __unmap_hugepage_range() to > >>> take folio. > >>> > >>> Signed-off-by: Fan Ni > >>> --- > >>> > >>> Question: If the change in the patch makes sense, should we try to convert all > >>> "page" uses in __unmap_hugepage_range() to folio? > >>> > >> > >> For this to be correct, we have to ensure that the pte in: > >> > >> page = pte_page(pte); > >> > >> only refers to the pte of a head page. pte comes from: > >> > >> pte = huge_ptep_get(mm, address, ptep); > >> > >> and in the for loop above: > >> > >> for (; address < end; address += sz) > >> > >> address is incremented by the huge page size so I think address here only > >> points to head pages of hugetlb folios and it would make sense to convert > >> page to folio here. > >> > > > > Thanks Sidhartha for reviewing the series. I have similar understanding and > > wanted to get confirmation from experts in this area. > > I think your understanding is right. BTW, you forgot to update definition of > __unmap_hugepage_range() under !CONFIG_HUGETLB_PAGE case. > Thanks Muchun. You are right, we need to update that. Hi Andrew, I see you picked this patch up, should I send a v2 for the series to fix the issue mentioned above? The fix is simple as below. diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index d6c503dd2f7d..ebaf95231934 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -452,7 +452,7 @@ static inline long hugetlb_change_protection( static inline void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, - unsigned long end, struct page *ref_page, + unsigned long end, struct folio *ref_folio, zap_flags_t zap_flags) { BUG(); Fan > > > > Thanks. > > Fan >