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 0FA96C25B75 for ; Mon, 3 Jun 2024 19:39:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9071A6B0098; Mon, 3 Jun 2024 15:39:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B60F6B0099; Mon, 3 Jun 2024 15:39:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7A4BC6B009A; Mon, 3 Jun 2024 15:39:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5E64F6B0098 for ; Mon, 3 Jun 2024 15:39:02 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C9DACA05FB for ; Mon, 3 Jun 2024 19:39:01 +0000 (UTC) X-FDA: 82190590482.10.C37BAD0 Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf05.hostedemail.com (Postfix) with ESMTP id 214FF10000B for ; Mon, 3 Jun 2024 19:38:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dxrBfkwL; spf=pass (imf05.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717443540; a=rsa-sha256; cv=none; b=i1rD58cY0NwGWoXDNGT0B6fJEW6ZI0t2YBgZy4t/Srl0nniED52cCXb44TEN/qbrK6phHz RY91RH9A/8IJTaQHe8Q2vaM0BFwk/jgeEHUl3paPkJmfNzOa2z5Zos/j4XoRNDySi1Je3e mlMpm39cgVVMj8USb+0ViNvQ94jXsgw= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dxrBfkwL; spf=pass (imf05.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=vishal.moola@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=1717443540; 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=5+0v3cS2L8imGiJtp7mry/9OeR09ftWj8BQpNQZKrk4=; b=BE0x/6yvNvsCKgc3DafRwNLLdefVhwWDiGCiVzbJqO7MmH2y16L7l2+RjdwTUz4MWLO6UG G4eKls3olme7tV8zZBUCbWPlA2yQ4kO+JkXwNL7YHOC2A4RjLdSqhqUMF95ttLZTQRy8HB jTrJEXGEbP1pcqcSYKqj3ni+d43B70s= Received: by mail-yb1-f171.google.com with SMTP id 3f1490d57ef6-dfa727d47c1so3215415276.0 for ; Mon, 03 Jun 2024 12:38:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717443539; x=1718048339; darn=kvack.org; 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=5+0v3cS2L8imGiJtp7mry/9OeR09ftWj8BQpNQZKrk4=; b=dxrBfkwLcqQeFiJ8jWLm3jvytEmsL5X1l/6mcRcIdYK03CmyCmTY8MRYoOCWCUfZ9+ KxkVE5yqGm/pztv1Dy+cw1nz4HheW5iVc7I/0zsQu1/SY/vpkcgWFZCkiSuwCiqj4fB3 nWLh+g13603loBL17Kdb5IE21Eev2CJNnMX8k8bBWqBijTR3lz4ZeXrogAWstH88FqnG lDx4qDnxeyvsw6rGRi+j1OThJiZ0jH+8ZtcWreRqoyUj51jFsD74OCj3m9U+XNMUGijt jXKkS25PWB037Ui9jFg0zfc8KA67gIpJCuuqliU6Zt5QLMNeKyNsrlNXPq20L0ZzkaOu iy+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717443539; x=1718048339; 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=5+0v3cS2L8imGiJtp7mry/9OeR09ftWj8BQpNQZKrk4=; b=jI1h0zfZPwxtVZ5iAbHcaw6GvzTX0knke1a3NJ3Nfb8bamDWhyBZJBIcuuPVX6FHyA ure/xWF30rxlI7wGzBguxUUoe/IRAZGpCh15OfY7JOMI8DTsFmYAd9mYtZYM21MM0Sr7 L/O4zlbgFUSflhWUzzwcE0KEH2gEmyiOH1Ll4fLLj5Ee3lCwhirCjetRKs8gxSBlCLuZ 22d0LjGw6E+aufC+uubDTQT8iklVfrBRLOZPx5YDAgIgcCjQ+Has2QGsu6UACvXZFf1g 1WilVWYNmA/9GO8EcqfRBSd4upOvb2OcgAqm0zZ4bsdRcLT1bmwO6AsLFfCen+Za3xC2 VLgA== X-Gm-Message-State: AOJu0YzGgEy+M5sfntFTs7+2EqZauSuNO1eUug27E27NNaiim2e7APQm Cf9Nyba5GC3pGyhPVB6B2B+NbccqsiPO3xEsn8MQWRhttmmAC2UU2ZxOZzUN3nID9+BhKFCH9pp ogf+NkYfSP4BQECTIQOK83f07/jQ= X-Google-Smtp-Source: AGHT+IGSqwrlreEwQ0oHR/E84e1KJnMxhzowFGzywMPgu+Ei8RVzerIQSHkRHGWS2LFaAghCSf3W1CG49D5wetXnjPU= X-Received: by 2002:a25:270a:0:b0:df7:7091:989e with SMTP id 3f1490d57ef6-dfa73dd2b17mr8942740276.60.1717443538993; Mon, 03 Jun 2024 12:38:58 -0700 (PDT) MIME-Version: 1.0 References: <20240520194749.334896-1-vishal.moola@gmail.com> In-Reply-To: From: Vishal Moola Date: Mon, 3 Jun 2024 12:38:47 -0700 Message-ID: Subject: Re: [PATCH] Convert __unmap_hugepage_range() to folios To: Matthew Wilcox Cc: linux-mm@kvack.org, akpm@linux-foundation.org, muchun.song@linux.dev, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 214FF10000B X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: z6u1jsemxagfxj4u5tdgw8erh5kk6piz X-HE-Tag: 1717443539-521946 X-HE-Meta: U2FsdGVkX1+S5VbvrT6Z09P33vSlVqvHwIEsxr8TcUjRqe8R9ve9X27039c20hRC526NnzQwCg6+uHG5XQ/RLlq3GFV5mgQxTfCfu8oUac9gfFC1Qzq6NoqsEB7P5+W79L6daoQ/RXFgcmoF6aEI275ikQM2fVQlZ3AiPHAtLp1yLG1erWsZyAtZ5yaaf3yYrPuCR8PxWPdjWkl8lela7hZh0ni5wuTYWYgDu5dtMHjfxjv/i2peMGv/0ahZ1wMueXYmxysgTSykVnwYRf/SNbHuEeV2fUOuOilFck7GPPOeNIo7zW5uVKaYRUIY0J9eBiWhyxSl8SRUlZmSSF96uzgMcUWNXl0KvU6QkDF5ZCKFi3J1tJkdFUNaxkcNDvnYhe0qaVmvuODmyovyGg9JGPsQvmac1s8PiwucctZVBA0TS32wyztC8R/Ib9Egwiyts8IE9hMOXI47YlJ4pm+EGvQZIfUJ25fJw67ObmA9H8RPFQxH2o8DY1emxNIhAGuv1rag/tE9uTXykPEEejGjot40pGNaHkb2YAlbg2zO4p26aeZIDnE8gYvrm3i24UBdv51/PPJQOGFxzIxpsvKePYQtXn35NNk31ASwPND4e35cuoiohSy62cEIjFucTA1mWIn68EQsZViXbfo360khHYBUBwQ7C9eZUYthktjgT0EXWHn7ZkJSy2nfDSJpQlp0S3W9v64r+7hmTwSxPHPHGVCk5TZjeb9JlNmHX+dDfpo+IcYaoC81SHdVRSEaUeYUkejDlr1MNt6XTVuexJPmxHJk3kQ7E3lvmgaw0DCJmF6pM6FCtJbY4TMCdqGc9XC4kTKFcatiyGTneyT/G+o6yKBL5cWgrmu1LrPzyEAj4LUFiMyq78R/RDWNNNRP5OkIru0/oWdvAOsTsno+/IVkWAdEeitbwcJnCdkU3ZUVRAqnThbmM/YPE0L13wT8Mv2eGjDd1LbvxxJNxofPjyO grRG281k UH0oU7EtWl/mY4sKYOsGuMlrwQX+EKV21A7cuf9zbGO/fK7IT4REfyGiTM0YUGti1NY5FYP0X9Xo3yK3KoPLqaaWc7KEQ4cvnbq6LDMkLgTtgrXaDcWjT025cgIuTdkgW+og6aBGGtaw2LMaPyCYY7gikSmlVxt9VCPiEd3IFPzej1LEWWsALlcWOtpuA51T84F6rAp9+ZcjWkPLApOjtX47o9kO/F9qmrP+8X/cETqblBnosEeGODs9yLU1HfCbDgS5ZrE1MrK4fGk7GhZ1K4FpsziWqJF6vSf4FZcpWf4UvGmTpCdo1j9W9KRPdkLSoZBkmaHYvsVkZi0P01CfGzvwmJGtPKgTqDi13rliSfJnFx9NDUaMaUkN3UICAVMWs1DBypgOS2W2IrjnpHer5IHC/wO1YE8oSAFl+4qQ8cmsQHBdRMyOs6GcwbzunCyJA/7uwC9E2CoPHKK6FvzsPiyXzd0xGYr12joKJeJrgoA2xB9qfgpRQJmea0ShZRYSucP2I X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, 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 Tue, May 21, 2024 at 2:13=E2=80=AFPM Vishal Moola wrote: > > On Mon, May 20, 2024 at 2:46=E2=80=AFPM Matthew Wilcox wrote: > > > > On Mon, May 20, 2024 at 12:47:49PM -0700, Vishal Moola (Oracle) wrote: > > > Replaces 4 calls to compound_head() with one. Also converts > > > unmap_hugepage_range() and unmap_ref_private() to take in folios. > > > > This is great! > > > > > void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_s= truct *vma, > > > unsigned long start, unsigned long end, > > > - struct page *ref_page, zap_flags_t zap_flag= s) > > > + struct folio *ref_folio, zap_flags_t zap_fl= ags) > > > { > > > struct mm_struct *mm =3D vma->vm_mm; > > > unsigned long address; > > > pte_t *ptep; > > > pte_t pte; > > > spinlock_t *ptl; > > > - struct page *page; > > > + struct folio *folio; > > > struct hstate *h =3D hstate_vma(vma); > > > unsigned long sz =3D huge_page_size(h); > > > > I would appreciate some further cleanup ... > > > > size_t sz =3D folio_size(folio); > > > > I think there are further cleanups along those lines, eg > > pages_per_huge_page(), hugetlb_mask_last_page(), huge_page_mask(). > > > > Gotcha, I'll look into those and change them in v2. I took a closer look at your suggestions for cleanups here. Most callers of unmap_hugepage_range() pass NULL as ref_folio - meaning we want to unmap all pages in the range. This means alot of the preparatory work is likely done without a reference to a folio, so using folio_size() is unsafe. For when we later have a reference to a folio, I think we should continue to use the hstate-defined values since using the folio in one place and hstate in another makes things harder to change (if we ever want to).